1

如何在文本输入值更改后立即让 knockout.js 更新视图模型?问题是更新仅在字段松散焦点时触发。

来自knockout.js 文档

如果您想实时更新视图模型,“afterkeydown”是最佳选择。

我不觉得这有帮助。在我的系统中,我有一个名为用户令牌的字段。因此用户经常使用鼠标粘贴令牌。

那么如何让 knockout.js 为文本字段中的每个文本更改立即更新它的模型。

4

2 回答 2

1

正如您在问题中提到的那样,这是由valueUpdatebinding控制的。

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>
于 2014-06-09T12:40:44.443 回答
0

至少,它必须集中注意力才能让他们将令牌粘贴到正确的位置?所以也许有一个焦点事件处理程序作为备份运行。

否则总是只有onchange。

这是一篇关于在 knockout.js 中使用 onchange 的 SO 帖子,因为我个人从未使用过它。 KnockoutJS - 更新文本框值的 ViewModel OnChange 而不是 OnBlur 选项

于 2012-10-12T23:53:09.627 回答