Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jquery-ui dialog + autocomplete (https://javascript.ru/forum/misc/21733-jquery-ui-dialog-autocomplete.html)

Half 22.09.2011 07:22

jquery-ui dialog + autocomplete
 
Здравствуйте. Помогите прикрутить к текстбоксу в диалоге автозаполнение. В коде ниже список автозаполнения появляется, но почему-то только после второго открытия диалога.
Пробовал в диалоге на "open:" вызывать $.ajax(...), тоже через раз и даже реже.

Что делаю не так?

function showDialog(e) {
        $('#popupHide').empty();
        $('#popupHide').load(e.target.href + ' #EditForm');

        $('#popupHide').dialog({
            autoopen: false,
            modal: true,
            resizable: false,
            width: 750,
            height: 250,
        });

        $.ajax({
                    url: "TSServices.asmx/GetReasons",
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    success: function (data) {
                        $("#ctl00_MainContent_reasonTxt").autocomplete({ source: data.d });
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus + "\n" + errorThrown);
                    }
                });

        e.preventDefault();

        $('#popupHide').dialog('open');
    }

Half 22.09.2011 09:29

Сам нашел. Автозаполнение надо ставить после загрузки текста в диалог. По сути пытался повесить обработчик событий на еще не существующий текстбокс.
function getAutoComplete(){
    $.ajax({
        url: "TSServices.asmx/GetReasons",
        dataType: "json",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            $("#ctl00_MainContent_reasonTxt").autocomplete({ source: data.d });
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(textStatus + "\n" + errorThrown);
        }
    });
}

$('#popupHide').empty();

$('#popupHide').load(e.target.href + ' #EditForm', '', getAutoComplete);


Часовой пояс GMT +3, время: 07:23.