Я установил автозаполнение jquery, которое изменяет источник данных в зависимости от ввода в текстовом поле.
После изменения источника данных в jquery он не срабатывает до тех пор, пока не будет нажата кнопка со стрелкой вверх или вниз.
Я использовал firebug для проверки источника данных и не могу найти в этом ничего плохого.
Может кто-нибудь показать мне, как отправить клавишу со стрелкой вверх или вниз на элемент управления или решить эту проблему любым другим способом?
Большое спасибо!
edit: я заменил это на JSON следующим образом, но кажется, что запрос приходит с сообщением об ошибке
jQuery (function () {
JQuery ( "вход # автополный"). автополный ({
contentType: 'application / json; кодировка = UTF-8' ,
dataType: 'json',
mustMatch: false,
предел: 10,
minChars: 2,
select: function (event, ui) {
AutoCompleteSelectHandler(event, ui)
}
,
source: function (request, response) {
jQuery.ajax({
url: "http://localhost/integration/webservices/PostcodeJSON.asmx/GetPostCodeListJSONfromSuburb",
data: {},
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
alert(data);
},
error: function (XMLHttpRequest, textStatus,
errorThrown) {
оповещения (textStatus);
}
});
}
});
});
есть это поле ввода html.
Что я здесь не так сделал? Я подтвердил, что веб-сервис работает правильно.
edit2: я внес следующие изменения:
jQuery (function () {
JQuery ( "вход # автозаполнения"). автозаполнения ({
minChars: 2,
select: function (event, ui) {
AutoCompleteSelectHandler(event, ui)
}
,
source: function (request, response) {
jQuery.ajax({
url: "http://localhost/integration/webservices/PostcodeJSON.asmx/GetPostCodeListJSONfromSuburb",
data: '{ Suburb: "' +
jQuery ("# autocomplete"). Val () + '"}',
dataType: "json",
тип: "POST",
contentType: "application / json; charset = utf-8",
dataFilter: function (data) {return data.d; },
success: function (data) {
оповещения (data.d);
},
ошибка: функция (XMLHttpRequest, textStatus,
errorThrown) {
оповещения (textStatus);
}
});
}
});
});
поэтому предупреждение работает нормально. Но JQuery не показывает совпадающий список. Как мне это сделать?
РЕДАКТИРОВАТЬ 2:
Мне удалось решить проблему с веб-сервисом. Как настроить ответ, чтобы автозаполнение отображало список соответствующим образом? На данный момент каждый элемент в списке показывает мне полный список элементов.
т.е.), если я наберу 'ab' и если совпадения совпадут с 3, это покажет мне один и тот же результат 3 раза в 3 разных строках.
У меня есть настройки jquery, как показано ниже:
jQuery (function () {
JQuery ( "вход # автозаполнения"). автозаполнения ({
minChars: 2,
select: function (event, ui) {
AutoCompleteSelectHandler(event, ui)
}
,
source: function (request, response) {
jQuery.ajax({
url: "http://localhost/integration/webservices/PostcodeJSON.asmx/GetPostCodeListJSONfromSuburb",
data: '{ Suburb: "' + jQuery("#autocomplete").val() + '" }',
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return {
value: data.d
}
}))
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
}
});
Любая помощь будет высоко оценена, большое спасибо!