Почему это автозаполнение jQueryUI не попадает в его URL?

#jquery-ui #jquery-ui-autocomplete

#jquery-ui #jquery-ui-автозаполнение

Вопрос:

Я подключаю следующий метод к своей функции document.ready. Однако URL-адрес «myAutoCompleteURL.aspx» никогда не доступен (у меня есть точка останова на странице, и она никогда не попадает).

Кто-нибудь знает, почему это не работает? Я новичок в пользовательской версии автозаполнения; Ранее я использовал только устаревшую версию на основе jquery.

 function myAutoComplete(myTextBox, myLabel, myHidden) {
    var myType = $(myLabel).html();

    $(myTextBox).autocomplete({
        source: function (request, response) {
            $.ajax({
                type: 'POST',
                dataType: 'json',
                url: "../myAutoCompleteURL.aspx",
                data: { q: request.term, type: myType },
                success: function (myData) {
                    response($.map(myData, function (myItem) {
                        return { label: myItem.name, value: myItem.name, id: myItem.id }
                    }));
                }
            });
        },
        select: function (event, ui) {
            $(myTextBox).val(ui.myItem.name);
            $(myHidden).val(ui.myItem.id);
            return false;
        }
    });
}
  

Комментарии:

1. Не могли бы вы опубликовать ссылку на рабочую версию?

2. Работает ли этот $.ajax() вызов вне контекста автозаполнения? Попробуйте просто поместить его на страницу и передать фиксированные значения, чтобы посмотреть, работает ли это. Я полагаю, что вам может потребоваться использовать тип application/json данных , и вместо этого использовать строку JSON в кавычках для ваших данных, например.

3. Я вижу, что мое приложение загружает этот URL вместо этого: «/FileNotFound.htm?aspxerrorpath=/script/jquery/indicator.gif «. Что такое indicator.gif ? Файл jquery? Кажется, я использую неправильную версию jqueryui.

Ответ №1:

Вы можете удалить ../ в своем URL-адресе. Раньше у меня была такая же проблема некоторое время назад.

Во-вторых, в вашем вызове ajax есть функция ошибки. Если он попадает в функцию ошибки, значит, в ваших данных есть какая-то проблема, и вам нужно это исправить.

Как @GregL упомянул в своем комментарии, что вы используете JSON, а не application / json 🙂

Ответ №2:

Используйте Firebug и посмотрите, какой URL-адрес попадает вместо этого. Если в консоли ничего не отображается, значит, код javascript вообще не работает.

Комментарии:

1. У меня возникла проблема в моем CSS-коде. Спасибо, что предложили Firebug.