如何在文本输入值更改后立即使knockout.js更新视图模型?问题是更新仅在字段松散焦点时触发。
“afterkeydown”是你想要的最佳选择 保持您的视图模型实时更新。
我觉得这没有用。在我的系统中,我有一个名为user token的字段。因此用户经常使用鼠标粘贴令牌。
那么如何让knockout.js立即为文本字段中的每个文本更改更新它的模型。
答案 0 :(得分:1)
正如您在问题中所提到的,这是由valueUpdate
binding控制的。
input
。 “非现代浏览器”基本上意味着IE8及更早版本。来自文档:
在[所有
valueUpdate
]选项中,input
是最佳选择,如果你想保留你的 视图模型实时更新,您只需要支持 合理的现代浏览器,如IE 9+(而“afterkeydown”是一个 旧浏览器的不错选择)。例如:
<p>Your value: <input data-bind="value: someValue, valueUpdate: 'input'" /></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 :(得分:0)
至少,它必须集中精力才能让它们正确粘贴令牌?因此,可能将焦点事件处理程序作为备份运行。
否则总会有变化。
这是关于在knockout.js中使用onchange的SO帖子,因为我个人从未使用过它。 KnockoutJS - Updating ViewModel OnChange of textbox value instead of OnBlur Options