我有一个输入文本,它从 Javascript 函数(带有倒计时的计时器)获取他的值。
我想在输入文本为 0 时引发一个事件,所以我使用更改事件监听器。
不幸的是,当更改来自 javascript 函数时,它似乎不会引发该事件。
即使更改来自 Javascript 而不是来自用户,如何强制更改事件起作用?
来自精美手册 http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-htmlevents:
change
当控件失去输入焦点并且其值在获得焦点后已被修改时,会发生更改事件。该事件对于 INPUT、SELECT 和 TEXTAREA 有效。元素。
当您通过代码修改文本输入的值时,不会触发更改事件,因为没有焦点更改。您可以自己触发事件createEvent https://developer.mozilla.org/En/DOM/Document.createEvent and dispatchEvent https://developer.mozilla.org/En/DOM/Element.dispatchEvent, 例如:
el = document.getElementById('x');
ev = document.createEvent('Event');
ev.initEvent('change', true, false);
el.dispatchEvent(ev);
还有一个现场版本:http://jsfiddle.net/ambigously/nH8CH/ http://jsfiddle.net/ambiguous/nH8CH/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)