【发布时间】:2016-03-23 06:50:03
【问题描述】:
在我看来,有
<td><input type="text" data-bind="value:TotalAmount, inputmask: { value:TotalAmount}, event:{change: $root.totalAmountChanged}" /></td>
当我跳出输入字段时,更改事件不会触发,但如果我按 ENTER,它会触发。理想情况下,它应该在 TAB 上触发。
所以,我将它添加到我的视图模型中:
self.changeOnTab = function(obj, event) {
if (event.keyCode == 9) {
$(event.target).change();
}
并更改了我的视图以添加 keydown 事件:
<td><input type="text" data-bind="value:TotalAmount, inputmask: { value:TotalAmount}, event:{change: $root.totalAmountChanged, keydown: $root.changeOnTab}" /></td>
现在,当我点击 TAB 时,会触发更改事件,但是当我在输入字段中键入任何数字时,它们会被忽略。看起来我在 changeOnTab 函数中遗漏了一些东西,当 keyCode 不是 9 时,应该保留我的值。
【问题讨论】:
-
在字段中输入时不会触发 onchange 事件。一旦您离开该字段,它就会触发,并且它会看到该值与您第一次进入该字段时的值不同。
-
制表键有点不同。如果你想让 tab 键发生一些事情,你需要用 on key down 事件处理程序来捕获它。
标签: javascript events knockout.js