这听起来像是一个奇怪的问题,但希望有一个答案。当选择或文本框通过jQuery填充时检测到
我在我的HTML页面中有一些选择和文本框。这些框会在页面加载后的某个时候填充,我无法控制它们;我只是知道,最终在页面加载后,框将被填充。
有什么办法可以创建一个侦听器,可以检测到这些填充时?
我一直在使用setInterval/clearInterval,但我希望jQuery有一种“倾听”的方式来填充这些内容。
想法?
这听起来像是一个奇怪的问题,但希望有一个答案。当选择或文本框通过jQuery填充时检测到
我在我的HTML页面中有一些选择和文本框。这些框会在页面加载后的某个时候填充,我无法控制它们;我只是知道,最终在页面加载后,框将被填充。
有什么办法可以创建一个侦听器,可以检测到这些填充时?
我一直在使用setInterval/clearInterval,但我希望jQuery有一种“倾听”的方式来填充这些内容。
想法?
如果它们的值由用户设置,您可以听取更改事件。
$(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() {
....
});
你可以使用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动作,那么上述内容应该可以工作,如果它来自用户的操作,那么您只需要听取input
s(后面的部分$('input').change()
)上的change()
事件。
他们是否从用户或代码获取价值? – xzyfer 2011-02-06 00:58:57
是否为您做了事件更改/加密工作?另外,你没有控制填充字段的脚本? – Colum 2011-02-06 01:03:53