Определить, когда выбор или текстовые поля заполняются через JQuery - PullRequest
1 голос
/ 06 февраля 2011

Это может звучать странно, но, надеюсь, там есть ответ.

На моей HTML-странице есть несколько полей выбора и текстовых полей. Эти поля заполняются в какой-то момент после загрузки страницы, и я не контролирую их; Я просто знаю, что в конце концов после загрузки страницы ящики будут заполнены.

Есть ли способ создать слушателя, который сможет определять, когда они заполняются?

Я использовал setInterval / clearInterval, но я надеялся, что в jQuery есть способ «прослушивания», когда они будут заполнены.

Мысли

Ответы [ 2 ]

1 голос
/ 06 февраля 2011

Если их значения устанавливаются пользователем, вы можете прослушать событие изменения.

$(document).ready(function() {
    $('input, select').change(function() {
        var $changedElement = $(this);

        if($changedElement.val() != '') {
            // code to keep track of which elements are checked..
        }
    });
});

Если элементы добавляются на страницу из скрипта после загрузки страницы, вам нужно использовать live вместо change

$('input, select').live('change' function() {
    ....
});
0 голосов
/ 06 февраля 2011

Вы можете использовать trigger() для, ну, триггера change событие и change() для прослушивания changeevent:

$(document).ready(
    function(){
        // basically put .trigger('change') after whatever function populates the inputs
        $('form input').populateInputFunction().trigger('change');

    $('input').change(
        function(){
            // do whatever you want to do when the inputs are changed
        });

    });

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

По вашему вопросу это также неоднозначноотносительно того, откуда произошли изменения.Если это происходит от ваших собственных действий jQuery, то вышеприведенное должно работать, если это происходит от действий пользователя, тогда вам просто нужно прослушать событие change() на input s (последний раздел $('input').change()).

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