在我的经验中,input type="text"
onchange
事件通常仅在您离开后发生(blur
)控制。
有没有办法强制浏览器触发onchange
每次textfield
内容变化?如果不是,那么“手动”跟踪这个最优雅的方法是什么?
Using onkey*
事件并不可靠,因为您可以右键单击该字段并选择“粘贴”,这将在没有任何键盘输入的情况下更改该字段。
Is setTimeout
唯一的方法?..丑陋:-)
这几天听oninput https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/oninput.感觉像onchange https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onchange无需失去对元素的关注。它是 HTML5。
除 IE8 及更低版本外,所有人(甚至移动设备)都支持它。对于 IE 添加onpropertychange
。我这样使用它:
const source = document.getElementById('source');
const result = document.getElementById('result');
const inputHandler = function(e) {
result.innerText = e.target.value;
}
source.addEventListener('input', inputHandler);
source.addEventListener('propertychange', inputHandler); // for IE8
// Firefox/Edge18-/IE9+ don’t fire on <select><option>
// source.addEventListener('change', inputHandler);
<input id="source">
<div id="result"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)