【发布时间】:2012-10-13 09:48:02
【问题描述】:
我有一些代码基本上如下
.on("keyup", "input", function (e) {
this.value = utils.formatNumber(this.value);
})
.on("change", "input", function(e) {
expensiveFunctionThatUpdatesView();
})
事实上,当用户键入时,这些值的格式正确,但是当用户选择或单击离开输入字段时,不会触发 onChange 事件(因此不会更新视图)。如果我注释掉 keyup 事件处理函数的主体,一切都会按预期工作(格式化除外)。为什么会这样?
AFAIK,需要满足 two conditions 才能触发 onchange 事件:
- 一定是通过触发 onfocus 事件(存储旧值)的东西进入了控制/输入字段。
- focus 上的值与“exit”/blur 上的值不同
顺便说一句,我尝试将代码更改为“模糊”,但如果我格式化该字段也不会触发。测试时使用 Chrome。
【问题讨论】:
标签: javascript jquery event-handling