JQ改变value值不触发change事件
Change事件触发有两个必要条件:值改变、失去焦点。所以当使用JQ改变值时,控件没有失去焦点,所以不会触发。
目前验证有效的解决办法,只能是手动触发change事件
如:
$('input[name="change_val"]').click(function(){
$('input[name="a"]').val('a');
$('input[name="a"]').change();
});
在网上找了很久资料,很多人的回答是IE使用propertychange,其他浏览器使用input事件可以解决。但是自己试了下,propertychange在IE8浏览器中,JQ改变值可以,但是input在其他浏览器中是不可以的。
Input事件在增加或减少字符就会触发,但是这个的前提也是需要获得焦点的,所以JQ改变值是无法触发的。
Propertychange事件在IE8测试下,在JQ改变值时这个事件是可以触发。