<input type="hidden" name="blk" onchange="test();" value="" />
当使用js脚本是blk中的value值发生改变时为啥没触发onchange事件儿,怎么样才能执行test()方法呢?
<input type="hidden" name="blk" onchange="test();" value="" />
当使用js脚本是blk中的value值发生改变时为啥没触发onchange事件儿,怎么样才能执行test()方法呢?
onchange只要在获得焦点,然后再失去焦点后才会触发。直接dom操纵赋值可以扩展jquery,添加一个_val
方法,替代jq自己的val
$.fn.extend({_val:function(newVal){
var originalVal = $(this).val();
if(newVal!==originalVal) {
$(this).val(newVal);
$(this).trigger("change");
}
}})
给input赋值时这样使用 $('input[name=blk]')._val(12345)
即可.
看你的场景,不一定要像上面一样扩展jQuery。如果仅仅有一两处是使用,你也可在使用val
赋值完成后,在直接调用trigger("change")
触发事件即可,丑陋一点而已。
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
onchange事件只能在输入框失去焦点时内容有变化时触发,我猜你是想监听输入事件,请用onkeyup,这样每次输入字符都会触发事件。