$('input#not-gonna-work').bind({
keyup: function(){
console.log('Typed a key');
$(this).val($(this).val() + '.');// try with any other char
},
change: function(){
console.log('I\'m a changed input');
}
});
我在这个简化的版本中上演了这个错误jsfiddle例子。
与此错误相关的问题是,我正在构建一个金融应用程序,如果输入数据发生更改,我需要显示“保存更改”按钮。因为我需要立即插入千位分隔符keyup
(如果需要的话)这个错误真的让我很恼火并且破坏了该功能。
要重现它,请转到jsfiddle例如,在 chrome 中打开控制台,在第一个输入中键入任何内容,keyup
事件将被正确触发,而不是使用选项卡取消焦点输入或单击其外部,并且change
事件不会被解雇。对其他输入执行相同操作change
将被解雇。
我在 Firefox 中对此进行了测试,它按预期工作。
我使用的 Chromium 版本是 14.0.835.202 (Developer Build 103287 Linux) Ubuntu 11.10
and
尝试使用直接从 Chrome 网站新安装的 Google Chrome 15.0.874.106。
我可以插入分隔符change
事件,但由于用户将输入大量 7 位以上的数字,因此在输入时插入分隔符会更好的用户体验。
我在 IE9 中尝试过,它的行为与 Chrome 相同。
我不认为这是一个错误。
在 HTML 元素上使用 .val(value) 将重置“手动更改" 标志,因此不会发生任何更改事件(因为用户不会手动更改任何内容AFTERval() 操作)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)