根据我的经验,input type="text" onchange事件通常只在你离开(blur)控件之后才会发生.
有没有办法强制浏览器onchange每次textfield内容更改时触发?如果没有,那么"手动"追踪这个最优雅的方式是什么?
使用onkey*事件是不可靠的,因为您可以右键单击该字段并选择"粘贴",这将更改该字段而不需要任何键盘输入.
是setTimeout唯一的方法吗?丑陋的:-)
正如在这个jsfiddle示例中所示,当我更改占位符时,它会触发输入事件.我在IE 11版本上测试过,但我猜旧版本有同样的问题.其他浏览器的行为不像这样.这是IE漏洞吗?如果是这样,IE上的这个问题的解决方法是什么?
这是html标记.
<input type="text" />
<button>Change PlaceHolder</button>
Run Code Online (Sandbox Code Playgroud)
这里是javascript部分.
var i = 0;
$('button').click(function(){
$('input').attr('placeholder','placeholder ' + i++);
});
$('input').bind('input',function(){
alert('input even occur');
});
Run Code Online (Sandbox Code Playgroud)