Автозаполнение JqueryUI: для каждого элемента списка отображается только один символ
Я использую jquery-1.4.2.min
а также jquery-ui-1.8.6.custom
чтобы получить данные автозаполнения на странице jsp, вот фрагмент кода:
$(document).ready(function() { $("input#airportfrom").autocomplete({minLength: 3,
source: function(request, response) { $.ajax({
url: "MLocationLookupSearchPopUpAuto.action?LANGUAGE=${param.LANGUAGE}&SITE=${param.SITE}&RESULT_FILTER=3",
dataType:"text/html",
data: { MATCH : $("#airportfrom").val() },
success: function(data) { response(data); } }); } }); });
Возвращенный результат правильный, так как я использовал alert(data);
внутри функции успеха, и он дал правильный результат, но в списке он показывает один символ или один алфавит на строку, следовательно, если я хочу получить ЛОНДОН, он отображается как:
l
o
n
d
o
n
Есть идеи, почему это происходит? Должны ли мы предоставлять данные как json только потому, что здесь я получаю данные из jsp.
2 ответа
Попробуйте разбить данные ответа на строки, используя "\n"
$("#tags").autocomplete({
source: function(request,response) {
$.ajax({
dataType: "text",
url: 'yourscript.php?extraParam=foo',
data: { term: request.term },
success: function(data) {
var lines = data.split("\n");
response(lines);
}
})}
});
У меня была та же проблема, и это было до сериализации объекта дважды (по ошибке) на стороне сервера. Данные JSON, возвращаемые клиенту, десериализовались в строку, а не в массив.