2012-04-15 51 views
9

[见fiddle用于说明]valueUpdate:在Knockoutjs“afterkeydown”的输入类型=“数字” 2.0

我设置了一个值绑定到的类型数的input,并希望束缚observable立即反映更改到该领域的价值。要做到这一点,我设置了afterkeydown valueUpdate绑定。这适用于使用箭头向上和向下箭头键更改数字输入。但是,如果我使用浏览器生成(在Chrome中进行测试)增量/减量控制来更改数字,则更改只会在将焦点更改为不同元素时反映出来。我认为这反映了更改事件时的默认更新。

我的问题是,是否有任何方法可以使用上下键盘错误和浏览器生成的向上/向下错误控制来更改这两个更改?

回答

18

valueUpdate附加绑定可以接收一组事件。看起来oninput事件在点击向上/向下箭头时被触发。

所以,你可以将其绑定想:

<input type="number" data-bind="value: y, valueUpdate: ['afterkeydown', 'input']"/>

http://jsfiddle.net/rniemeyer/hY5T2/9/

+0

优秀的,它就像一个魅力。 谢谢! – odedbd 2012-05-02 13:59:27

+0

在我的MVVM DotNetNuke模块中使用这个,我得到了小(!)旋转和旋转按钮。它们非常小,使用它们几乎是不可能的。我认为它是一个CSS的东西,但还没有弄清楚。如果我不使用请使用每件事看起来不错,但值更新does not工作... 事情,让你去嗯... – 2014-10-30 10:15:40

+0

有一个问题,硒测试脚本不更新observables,并为我解决它。 – AaronLS 2018-03-06 22:02:41

相关问题