Kendo UI:在 TextBox 中的 KeyPress 上强制更新 ViewModel

Posted

技术标签:

【中文标题】Kendo UI:在 TextBox 中的 KeyPress 上强制更新 ViewModel【英文标题】:Kendo UI: Force update of ViewModel on KeyPress in TextBox 【发布时间】:2014-08-30 19:25:36 【问题描述】:

我有一个文本框字段,它的 value 属性绑定到我的 ViewModel 中的一个属性。

问题在于 ViewModel 默认在文本框的“更改”事件上更新(当文本框失去焦点时)。

我希望在执行按键事件时更新 ViewModel。

我不想在每次按键时强制“更改”事件,因为该事件处理程序中有一些逻辑,并且不必为每次按键执行。

有没有办法告诉 Kendo 在不触发“更改”事件的情况下更新 ViewModel?

我知道我可以手动修改 ViewModel,但我想要一些更简单和自动化的东西。

感谢您的回答,

【问题讨论】:

【参考方案1】:

使用数据值更新属性。使用“keypress”事件不会更新绑定模型的最后一个字符,因此请改用“keyup”事件。

<input id="name" type="text" 
    data-bind="value: name" data-value-update="keyup">

我最初使用“keypress”进行测试,但在 ViewModel 中输入文本“abcd”会导致“abc”。

【讨论】:

让它成为一个可以独立的答案,即使 CodingWithSpike 的答案会被删除,因为它是对答案的评论,而不是答案。 谢谢,笨蛋。我改为将回复的格式更改为答案。 不幸的是,它不适用于他们的小部件(maskedtextbox,numberictextbox)【参考方案2】:

您可以将data-value-update 属性添加到您的元素:

<input data-bind="value: someValue"
       data-value-update="keypress" />

文档在这里:Controlling When the ViewModel is Updated

【讨论】:

【参考方案3】:
 <input    type="text"  data-value-update="keypress"  data-bind="value: searchBySystemValue, events:  keypress: onkeypressEvent "/>

你可以在事件中添加功能

【讨论】:

以上是关于Kendo UI:在 TextBox 中的 KeyPress 上强制更新 ViewModel的主要内容,如果未能解决你的问题,请参考以下文章

kendo ui 下拉框kendoDropDownList

TabStrip中的Kendo UI模板语法

Kendo Numeric Textbox w。自定义格式 - 不工作

弹出窗口在 Kendo UI 网格中的工作原理以及如何在 MVC4 的 Kendo UI ajax 网格中将控件带入弹出窗口

Kendo Grid Edit Bootstrap 类和 Textbox 自动对焦与 EditorTemplate 不起作用

Kendo UI网格行中弹出窗口中的文件附件