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

uKo*_*lka 12 knockout.js

文档中取出的例子并坚持使用小提琴不起作用.完整性的代码段:

<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>
Run Code Online (Sandbox Code Playgroud)

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

预期的行为是viewModels的JSON转储应该更新,任何输入字段中的每个击键都会更改.

如果我切换到绑定而不是textInput,它会在输入焦点更改时更新.

有没有遇到过这个?

Sar*_*ley 27

textInput结合是在Knockout.JS(更高版本添加3.2.0).
将更新后的库添加到您的小提琴中它就可以了.

  • 我遇到了同样的问题,不幸的是,jsfiddle没有列出任何更新的KO 3.0.手动添加3.2作为外部源,像魅力一样工作!KO文档应该真正提到最低版本,就像jQuery一样. (2认同)

atr*_*eon 7

如果你被困在较旧版本的Knockout上,你可以使用valueUpdate

<input data-bind="value: firstName, valueUpdate:'afterkeydown'" />
Run Code Online (Sandbox Code Playgroud)

/sf/answers/307399361/