KnockoutJS - 更新文本框值而不是OnBlur选项的ViewModel OnChange

时间:2012-03-07 16:04:57

标签: knockout.js

我对KnockoutJS很新,我喜欢到目前为止所看到的。 当前,当视图模型的可观察属性被绑定时 文本框的文本属性(输入类型=文本),ViewModel 仅在文本框的模糊事件上更新。有办法吗? 更新文本框更改事件的视图模型?我试过了 在连接change事件时创建自定义绑定处理程序 处理器在“init”的文本框中,但它以某种方式不起作用。是 这是否正确实现这一目标?或者有更简单的方法吗?

3 个答案:

答案 0 :(得分:22)

您还可以使用“值”绑定并添加valueUpdate绑定属性以指定何时更新控件:

见这里:http://knockoutjs.com/documentation/value-binding.html

<p>Your value: <input data-bind="value: someValue, valueUpdate: 'afterkeydown'" /></p>
<p>You have typed: <span data-bind="text: someValue"></span></p> <!-- updates in real-time     -->

<script type="text/javascript">
var viewModel = {
    someValue: ko.observable("edit me")
};
</script>

答案 1 :(得分:7)

从鼠标复制粘贴时,上面不起作用,因此您需要在valueUpdate中传递事件。 像..

<p>Your value: <input data-bind="value: someValue, valueUpdate:['afterkeydown','propertychange','input']" /></p>

在此尝试http://jsfiddle.net/uJCQq/4/

答案 2 :(得分:0)

根据official Knockout.js documentation

  

从输入中即时获取值更新:如果您试图将或绑定到视图模型以获取即时更新,请使用textInput binding。与valueUpdate选项的任何组合相比,它对浏览器边缘情况的支持更好。