2011-02-06 60 views
1

这听起来像是一个奇怪的问题,但希望有一个答案。当选择或文本框通过jQuery填充时检测到

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

有什么办法可以创建一个侦听器,可以检测到这些填充时?

我一直在使用setInterval/clearInterval,但我希望jQuery有一种“倾听”的方式来填充这些内容。

想法?

+0

他们是否从用户或代码获取价值? – xzyfer 2011-02-06 00:58:57

+0

是否为您做了事件更改/加密工作?另外,你没有控制填充字段的脚本? – Colum 2011-02-06 01:03:53

回答

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

你可以使用trigger(),好了,触发change事件和change()收听change事件:

$(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动作,那么上述内容应该可以工作,如果它来自用户的操作,那么您只需要听取inputs(后面的部分$('input').change())上的change()事件。

相关问题