为什么knockout.js textInput绑定不起作用?

时间:2014-08-27 00:47:14

标签: knockout.js

取自documentation并坚持fiddle的示例不起作用。 完整性的代码段:

<p>Login name: <input data-bind="textInput: userName" /></p>
<p>Password: <input type="password" data-bind="textInput: userPassword" /></p>

ViewModel:
<pre data-bind="text: ko.toJSON($root, null, 2)"></pre>

<script>
    ko.applyBindings({
        userName: ko.observable(""),        // Initially blank
        userPassword: ko.observable("abc")  // Prepopulate
    });
</script>

我在一个隐身窗口中尝试过,认为某些浏览器扩展程序可能会搞乱它。没有运气。

预期的行为是 viewModels 的JSON转储应该随着任何输入字段中的每次击键更新而更新。

如果我切换到绑定而不是 textInput ,只要输入焦点发生变化,它就会更新。

有没有人遇到过这个?

2 个答案:

答案 0 :(得分:26)

在更高版本的Knockout.JS(3.2.0)中添加了textInput绑定。
将更新后的库添加到您的小提琴中并且它可以正常工作。

答案 1 :(得分:7)

如果您遇到较旧版本的Knockout,可以使用valueUpdate

<input data-bind="value: firstName, valueUpdate:'afterkeydown'" />

https://stackoverflow.com/a/4391419/1058292