Сначала я подумал, что это должно быть очень легко.Просто используйте $ (селектор) .val (), чтобы получить значение.Однако у меня много трудностей.
Позвольте мне привести пример.
Предположим, у меня есть два текстовых поля, и они прикреплены к плагину jQuery AutoComplete.
Когда я нажимаю на первое текстовое поле, я делаю вызов ajax, в случае успеха я связываю возвращенные данные в это текстовое поле, на которое нажали, и hiddenField, который используется для хранения возвращенного идентификатора.
Весь прогресслегко, я делаю вызов Ajax и идет успешно.Скрытое поле теперь имеет возвращаемое значение.
Когда я создаю второе событие автозаполнения, и для этого я пытаюсь прочитать значение из скрытого поля.
На этот раз не удалось.Не из-за вызова ajax, а потому, что значение равно нулю ...
Я в замешательстве.Потому что hiddenField имеет определенную ценность там.Но почему я не могу это легко прочитать?
Вот некоторые коды, которые у меня есть
function DepartCityAutoComplete() {
$("#txtDeparture").autocomplete({
minLength: 3,
source:
function (request, response) {
$.ajax({
type: "POST",
url: "/AjaxDataServices.asmx/DepartCityAutoComplete",
data: '{"keyword":"' + request.term + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
response($.map(data.d, function (item) {
return { value: item.CityName + ", " + item.StateShortName, id: item.CityID }
}))
},
error: function () {
alert("An unexpected error has occurred during processing.");
}
});
},
select: function (event, ui) {
$("#txtDeparture").val(ui.item.value);
$("#hiddenDepartCityID").val(ui.item.id);
}
});
}
function DestCityAutoComplete() {
var departCityID = $("hiddenDepartCityID").val();
$("#txtDestination").autocomplete({
minLength: 3,
source:
function (request, response) {
$.ajax({
type: "POST",
url: "/AjaxDataServices.asmx/DestCityAutoComplete",
data: '{"keyword":"' + request.term + '","id":"' + departCityID + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
response($.map(data.d, function (item) {
return { value: item.CityName + ", " + item.StateShortName, id: item.CityID }
}))
},
error: function () {
alert("An unexpected error has occurred during processing.");
}
});
},
select: function (event, ui) {
$("#txtDestination").val(ui.item.value);
$("#hiddenReturnCityID").val(ui.item.id);
}
});
}
Может кто-нибудь дать мнелюбое предложение?Большое спасибо.
Вот мое предположение
Это из-за $ (document) .ready (function ()
У меня естьследующий код:
$(document).ready(function () {
DepartCityAutoComplete();
DestCityAutoComplete();
});
Таким образом, эти две функции запускаются при загрузке страницы.Несмотря на то, что первая функция автозаполнения присваивает какое-либо значение в hiddenField, веб-браузер этого не знает.Пожалуйста, поправьте меня, если я ошибаюсь.Спасибо