如何在文本输入值更改后立即让 knockout.js 更新视图模型?问题是更新仅在字段松散焦点时触发。
如果您想实时更新视图模型,“afterkeydown”是最佳选择。
我不觉得这有帮助。在我的系统中,我有一个名为用户令牌的字段。因此用户经常使用鼠标粘贴令牌。
那么如何让 knockout.js 为文本字段中的每个文本更改立即更新它的模型。
如何在文本输入值更改后立即让 knockout.js 更新视图模型?问题是更新仅在字段松散焦点时触发。
如果您想实时更新视图模型,“afterkeydown”是最佳选择。
我不觉得这有帮助。在我的系统中,我有一个名为用户令牌的字段。因此用户经常使用鼠标粘贴令牌。
那么如何让 knockout.js 为文本字段中的每个文本更改立即更新它的模型。
正如您在问题中提到的那样,这是由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。
这是一篇关于在 knockout.js 中使用 onchange 的 SO 帖子,因为我个人从未使用过它。 KnockoutJS - 更新文本框值的 ViewModel OnChange 而不是 OnBlur 选项