JQuery UI автозаполнения сводит меня с ума - PullRequest
0 голосов
/ 21 июня 2011

у меня есть <input id="txtCustome2r" />

У меня есть .ready функция

$("#txtCustome2r").autocomplete({
    source:  "itemcomplete.asp", 
    minLength: 2,
    select: function( event, ui ) {
        log( ui.item ?
                     "Selected: " + ui.item.value + " aka " + ui.item.id :
                     "Nothing selected, input was " + this.value );
    }
}); 

возврат автозаполнения действителен json

[ { "id': "4",  "label": "Kathi  ",   "value": "Kathi  "}, { "id': "6",  "label": "Kathleen  ",   "value": "Kathleen  "}]

и в раскрывающемся списке ничего не отображается. Любая помощь с благодарностью!

Спасибо!

Ответы [ 3 ]

6 голосов
/ 21 июня 2011

Одинарные кавычки недействительны в формате JSON. Вам необходимо заключить имена клавиш и строковые значения в двойные кавычки:

[ { "id": 4,  "label": "Kathi", "value": "Kathi 3" }, ... ]

Если вы хотите проверить правильность своего ответа JSON, вы можете использовать JSONLint .

1 голос
/ 21 июня 2011

Это может быть немного сложно.Мне нравится делать источник функцией, чтобы иметь больше контроля.Обратите внимание на переопределение toString:

var search = function (request, response) {
    jQuery.get(
        jQuery('#SearchUrl').val(),
        { searchString: request.term },
        function (data) {
            response(jQuery.map(data.searchResults, function (item) {
                return {
                    label: item.Id,
                    value: {
                        toString: function () { return item.Id + ' - ' + item.Name; },
                        Name: item.Name
                    }
                }
            }));
        }
    );
};
// set up the autocomplete
jQuery('#MyTextBox').autocomplete({
    source: search,
    minLength: 3,
    focus: function (event, ui) {
        jQuery('#name').text(ui.item.value.Name);
    }
});
1 голос
/ 21 июня 2011

Если после проверки формата, который упоминается в решении @Mark Bell, у вас все еще возникают проблемы, попробуйте передать dataType: 'json' вызову функции автозаполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...