Автозаполнение jQuery не работает для динамических полей формы - PullRequest
1 голос
/ 29 октября 2010

Эй, ребята ... Я вернулся с другим вопросом ...

Я использую автозаполнение jquery в поле формы. Это работает!

Проблема в том, что динамически я добавляю еще одну строку в форму, это не так. Да, я продолжаю переключать идентификатор нового поля на новое.

Оригинал = exampassed1 Динамически добавляется = exampassed2, exampassed3 и так далее ...

Я уже добавил их эквиваленты в jQuery

$("#exampassed1").autocomplete({
    source: "exams.php",
    minLength: 2
});

$("#exampassed2").autocomplete({
    source: "exams.php",
    minLength: 2
});

и так далее ...

Мне кажется, проблема в том, что jQuery не распознает динамически добавленные элементы, он только читает элементы, присутствующие при загрузке ...

Есть ли способ, которым мы можем ткнуть в обработчик jquery, чтобы прочитать эти новые добавленные элементы ??

Я слышал о функциях bind и live, хотя я не могу найти способ реализовать их ...

Любая маленькая / полная помощь здесь очень ценится ... ура!

JQuery, который я использую

$().ready(function() {
    $("#autonco").autocomplete({
        source: "nco.php",
        minLength: 2
    });

    $("#autonco1").autocomplete({
        source: "nco.php",
        minLength: 2
    });

    $("#autonco2").autocomplete({
        source: "nco.php",
        minLength: 2
    });

    $("#exampassed1").autocomplete({
        source: "exams.php",
        minLength: 2
    });

    $("#exampassed2").autocomplete({
        source: "exams.php",
        minLength: 2
    });

});

Код, который уже есть ...

    <td align="center" valign="top">            
    <input type="text" id="exampassed1" name="exam[]" />
    </td>

Код, который добавляется динамически ...

    <td valign="top" align="center">            
    <input id="exampassed2" name="exam[]" type="text">
    </td>

Любые указатели также приветствуются!

Большое спасибо еще раз!

Ответы [ 2 ]

3 голосов
/ 31 октября 2010

Ниже приведен код, который я использовал. Решено!

$().ready(function() {

    $("#exampassed1").autocomplete({
        source: "exams.php",
        minLength: 2
    });

    $("#exampassed2").live('focus', function() {

        $("#exampassed2").autocomplete({
        source: "exams.php",
        minLength: 2
        });

    });

});

Ура! * * 1004

1 голос
/ 29 октября 2010

Не звоните другим $().autocomplete, пока не получите ответный звонок от предыдущего. Если у вас есть такие каскад, Javascript Engine будет проходить через них все, прежде чем вы получите обратный вызов с первого раза. Поэтому он не может найти то, что ищет.

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