检测何时通过jQuery填充选择或文本框

时间:2011-02-06 00:56:03

标签: javascript jquery listener

这可能听起来像一个奇怪的问题,但希望有答案。

我的HTML页面中有许多选择和文本框。加载页面后,这些框会在某个时刻填充,我无法控制它们;我知道最终在页面加载后,这些框将被填充。

有没有办法创建一个可以检测何时填充这些内容的侦听器?

我一直在使用setInterval / clearInterval,但是我希望jQuery在填充这些内容时能够“监听”。

思想?

2 个答案:

答案 0 :(得分:1)

如果用户设置了他们的值,您可以收听更改事件。

$(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() {
    ....
});

答案 1 :(得分:0)

您可以使用trigger()触发 change事件,change()来监听change事件:< / p>

$(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事件(后一部分{{ 1}})。