如何在文本输入值更改后立即更新视图模型knockout.js?问题是仅当字段松散焦点时才会触发更新。在文本框值更改后立即更新knockout.js视图模型
“afterkeydown”是最好的选择,如果你想 让您的视图模型实时更新。
我没有觉得这有帮助。在我的系统中,我有称为用户令牌的字段。因此用户经常使用鼠标粘贴令牌。
那么如何让knockout.js立即为文本字段中的每个文本更改更新模型。
如何在文本输入值更改后立即更新视图模型knockout.js?问题是仅当字段松散焦点时才会触发更新。在文本框值更改后立即更新knockout.js视图模型
“afterkeydown”是最好的选择,如果你想 让您的视图模型实时更新。
我没有觉得这有帮助。在我的系统中,我有称为用户令牌的字段。因此用户经常使用鼠标粘贴令牌。
那么如何让knockout.js立即为文本字段中的每个文本更改更新模型。
至少,它将不得不专注为了让他们粘贴令牌的权利?所以也许有一个焦点事件处理程序作为备份运行。
否则总是有变化。
这里是关于在knockout.js中使用onchange的SO帖子,因为我个人从未使用它自己。 KnockoutJS - Updating ViewModel OnChange of textbox value instead of OnBlur Options
或者我想技术上答案是使用值绑定。 – thescientist
正如你在你的问题中提到的那样,这是由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>
起码,它必须得到关注,以便它们贴在右边的令牌?所以也许有一个焦点事件处理程序作为备份运行。或者总是只有onchange – thescientist
同意,一旦粘贴和标签出/失去焦点onchange或使用jquerys change()函数将比检查每个键入 – user1166905
我会把它作为一个答案。 – thescientist