取自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 ,只要输入焦点发生变化,它就会更新。
有没有人遇到过这个?
答案 0 :(得分:26)
在更高版本的Knockout.JS(3.2.0)中添加了textInput
绑定。
将更新后的库添加到您的小提琴中并且它可以正常工作。
答案 1 :(得分:7)
如果您遇到较旧版本的Knockout,可以使用valueUpdate
<input data-bind="value: firstName, valueUpdate:'afterkeydown'" />