Текстовое поле динамического ввода не привязано к автозаполнению - PullRequest
3 голосов
/ 22 октября 2011

Я пытаюсь следовать этому решению, но не получаю никакой удачи. jQuery автозаполнение для динамически создаваемых входов

var autocomp_opt = {
    source: function (request, response) {

    $.ajax({
        url: "ServiceProxy.asmx/ByKeyWord",
        cache: false,
        data: "{ 'term':'" + request.term + "'}",
        dataType: "json",
        type: "POST",
        crossDomain: "true",
        contentType: "application/json; charset=utf-8",
        error: function (xhr, textStatus, errorThrown) {
            alert('Error: ' + xhr.responseText);
        },
        success: function (data) {
            response($.map(data, function (item) {
                return item.split(",");
            }));       
        },

        error: function (a, b, c) {

        }
    });
},
    minLength: 2
};

А потом, когда сгенерировано мое поле ввода, я попытался ...

    input = document.createElement("input");
    input.disabled = true;  
    input.className = this.FORM_INPUT_CLASS;

    $(input.id).autocomplete(autocomp_opt);
    table.rows[table.rows.length - 1].cells[1].appendChild(input);

Не было ошибок, нокажется, это не связывает это правильно ... если у кого-нибудь есть идея - пожалуйста, напишите.спасибо.

Ответы [ 2 ]

3 голосов
/ 22 октября 2011

Попробуйте изменить эту строку:

$(input.id).autocomplete(autocomp_opt);

на эту:

$('#' + input.id).autocomplete(autocomp_opt);
0 голосов
/ 22 октября 2011

Это работает, когда я добавляю:

    $('#fieldname").autocomplete(autocomp_opt);

после этой строки

    table.rows[table.rows.length - 1].cells[1].appendChild(input);

Я предполагаю, что это может быть зарегистрировано, только когда поле ввода добавлено к чему-то.Стоит также отметить, что добавление какого-либо дескриптора события onfocus, onselect, т. Е., Тоже работает.Хотя я подозреваю, что это потому, что поле ввода полностью визуализируется / добавляется в этот момент.

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