js动态修改input的value,会阻碍onchange事件?大家好,请看如下html,执行后,发现input的onchange事件未响应,
js动态修改input的value,会阻碍onchange事件?
大家好,请看如下html,执行后,发现input的onchange事件未响应,原因是我在onpropertychange中,修改了input的value,修改value为何会影响到onchange?如何才能避免?求解,谢谢!
- HTML code
<html> <head></head> <body> <input onpropertychange="testPropertyChange(this)" onchange="testChange()" /> </body></html><script type="text/javascript"> function testChange() { alert("changed"); } function testPropertyChange(input) { input.value = "aa"; // 这段话如果改为alert("aa"),则结果两个事件都能响应 }</script>[解决办法]
ie会内存溢出。。
onchange和blur差不多,不过是要内容不一样时才会调用onchange
onpropertychange是只要内容改变就触发,设置控件内容回导致循环调用onpropertychange导致内存溢出stack overflow at line 0
[解决办法]
- JScript code
<html> <head></head> <body> <input onpropertychange="testPropertyChange(this)" onchange="testChange()" /> </body></html><script type="text/javascript"> function testChange() { alert("changed"); } var i=1; function testPropertyChange(input) { alert("第"+(i++)+"次进入"); if(i==10) return; input.value = "aa"; // 这段话如果改为alert("aa"),则结果两个事件都能响应 }</script>
[解决办法]
