对于Knockout,TAB不会触发更改事件
With Knockout, TAB is not firing change event
在我看来,有
<td><input type="text" data-bind="value:TotalAmount, inputmask: { value:TotalAmount}, event:{change: $root.totalAmountChanged}" /></td>
当我用TAB键退出输入字段时,更改事件不会触发,但如果我按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时,应该保留我的值。
我们有可观察性的一个关键原因是,您不必观察DOM元素,您可以观察可观察器。订阅TotalAmount
,并在其值更改时执行任何您想执行的操作。
相关文章:
- 在页面重新加载后绑定事件,并仅使用Knockout.js、html和js创建新的html元素
- 将jQuery事件函数应用于新的Knockout.js数组元素
- jQueryClick事件未附加到Knockout模板
- 将事件对象传递给 KNOCKOUT.js函数
- Knockout.js :使用存储库模式绑定到点击事件上的函数
- Knockout.js的cleanNode不会解绑事件
- Knockout事件绑定意外行为
- Knockout.js似乎在抨击我的jQuery事件处理程序,真是太粗鲁了
- 对于Knockout,TAB不会触发更改事件
- knockout.js输入框事件更改-传递旧值
- 正在触发Knockout JS中子属性的订阅事件
- knockout.js事件,用于跟踪输入文本框内的每一个文本更改
- 当使用Knockout's的foreach绑定,do事件会在视图模型更新时自动清理
- Knockout点击事件可见状态
- 任何视图模型dom更新的Knockout JS事件
- 如果使用Knockout注册了暂停事件,为什么无法暂停音频
- knockout.js/如何响应绑定下拉列表中的更改事件
- 动态添加对象上的Knockout-subscribe事件
- Knockout JS:文件上传事件
- 单击输入[复选框]'s标签将触发两次父's click事件(knockout)