前段时间我为 jQuery 写了一个输入掩码扩展,它自动从输入元素中过滤掉任何非十进制/整数值,我今天才发现如果 keyup 事件改变了值,它不再调用 onchange 事件输入的:
示例:http://jsfiddle.net/At8Ht/37/
如果您在 Firefox 中查看它,它会显示“Halp!”更改后输入下方,当输入模糊/失去焦点时,但在 Chrome 中不会。
有人有什么建议吗?实际上,我想要做的就是在用户键入大量数字时自动插入逗号,例如,在用户松开“2”键后,键入“1552”会产生“1,552”。在 Chrome 11/12 之前,这一直运行良好:(
最佳答案
您可以使用 blur
和更冗长的代码来做到这一点:
$("#item")
.focus(function() {
this.previousValue = this.value;
})
.keyup(function() {
this.value = new Date().getTime(); // or whatever magic code goes here
})
.blur(function() {
if (this.previousValue !== this.value) {
this.previousValue = this.value;
$('#console').append('halp');
}
});
关于javascript - 设置值后 Chrome 11+(可能还有 IE)不会触发 OnChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6364823/