使用最新的Chrome浏览器。
即使在为一个输入表面连接onchange事件之后也是脏的方式,因为没有扩展事件只需要inputurface.on(' change',function(){}):
MyInputSurface.prototype.deploy = function deploy(target){ this._superDeploy(目标);
target.onchange = function() {
console.log('test change');
};
target.onclick = function() {
console.log('test click');
};
};
直到我在浏览器窗口中单击后才会触发onchange事件。点击事件工作得很好。有什么建议吗?
答案 0 :(得分:0)
在输入失去焦点之前,onchange
事件不会触发。这就是为什么你必须在回调运行之前再次点击浏览器窗口。
当提交内容时触发此事件,而不是在值更改时触发此事件。例如,在文本框中,在用户键入时不会触发此事件,而是在用户通过保留具有焦点的文本框提交更改时触发。此外,当控件也失去焦点时,此事件在onblur指定的代码之前执行。
如果您想在用户输入时输入输入值,则必须听取输入的input
事件。
再次来自IE Dev Center:
您可以使用oninput来检测textArea,input type = text或input type = password的内容何时更改。修改后立即发生此事件,与onchange事件不同,后者在元素失去焦点时发生。
当您的input
回调触发时,只需像change
一样获取目标值。