Автозаполнение 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, возвращаемые клиенту, десериализовались в строку, а не в массив.

Другие вопросы по тегам