我有一个使用 Knockout.js 值绑定绑定到视图模型的文本输入字段。在 IE9 中,如果我输入用户名的前几个字母,我会得到标准的自动完成下拉菜单。从自动完成中选择我的用户名不会更新我的视图模型。有没有办法从自动完成选择中触发对我的 observable 的更新?
<input type="text" data-bind="value: userName" />
我有一个使用 Knockout.js 值绑定绑定到视图模型的文本输入字段。在 IE9 中,如果我输入用户名的前几个字母,我会得到标准的自动完成下拉菜单。从自动完成中选择我的用户名不会更新我的视图模型。有没有办法从自动完成选择中触发对我的 observable 的更新?
<input type="text" data-bind="value: userName" />
按照理查德的回答建议升级到 2.1.0 解决了我的问题,所以我将其标记为答案。
对于需要在 Knockout 2.0.0 中工作的任何人,将 valueUpdate 设置为 'blur' 似乎也可以。
<input type="text" data-bind="value: userName, valueUpdate: 'blur'" />
这个问题在 1 年前作为 bug 提交:
https://github.com/SteveSanderson/knockout/pull/122
似乎在 2.1.0 版本的 knockout.js 中包含了一个修复程序 - 所以如果你更新它应该会为你解决这个问题。
<input>
如果这是不可能的,另一种建议是使用属性关闭您的用户名的自动完成功能autocomplete="off"
它对我有用 valueUpdate: 'blur' with ko_autocomplete in knockout