1

我正在使用 Kendo UI 并使用声明性绑定来绑定表单上的元素。它使用组合框小部件来搜索选项列表。小部件实际上按预期执行,但是仅在值更改时才请求搜索(这是有道理的)。我遇到的问题是更改事件仅在用户模糊组合框时触发(例如通过单击输入外部)。

这是可以预料的,因为在模糊之后会触发 DOM 更改事件,但是Kendo UI 文档指出,通过使用 'data-value-update' 参数,您可以指定要在 'keyup' 上触发的事件。

不幸的是我不能让它工作,这里是组合框 HTML

<input data-role='combobox' data-bind="value: comboBoxValue, events: { change: methodToDoSearch}" data-value-update="keyup" type="text" data-text-field='Text' data-value-field='Id' />

这是作为剑道 ui 模板的一部分创建的(尽管我已经在模板之外进行了测试,所以这应该没有什么区别)

提前致谢。

4

2 回答 2

0

仅原版文本框 ( ) 支持该data-value-update属性<input type="text" />。Kendo ComboBox 仅在失去焦点时才引发其更改事件。

于 2012-11-29T20:14:30.657 回答
0

具体来说,data-value-update 仅用于更新应用小部件的绑定对象(当您在小部件中输入内容时,可观察对象将使用给定事件的值进行更新。在本例中为 keyup)。

IE,因为组合框小部件只能设置为组合框数据源值之一,所以将 observable 绑定到临时的非组合框值是没有意义的。

我还没有尝试过,但是您可以通过事件绑定来绑定哪些事件?剑道演示显示鼠标悬停、单击等。也许可以尝试这样的事情:

<input data-role='combobox' data-bind="value: comboBoxValue, events: { change: methodToDoSearch, keyup: methodToDoSearch}" type="text" data-text-field='Text' data-value-field='Id' />

一般来说,你想在 keyup 上触发什么事件?如果您想做一些手动搜索来更改 keyup 上组合框的数据源,这就是我想要的。

于 2013-06-17T16:32:11.063 回答