我正在使用Kendo UI开发移动应用程序。在我的脚本文件中,
$("#name").kendoAutoComplete({
dataBound: onChange
});
假设我的自动填充框中包含字符串“abc”。当我删除一个字母时,它会触发数据绑定事件。但是我删除了自动完成的最后一个字母(清空自动完成),它不会触发数据绑定事件。任何人都可以解释这个问题吗?
答案 0 :(得分:1)
当您键入时,自动完成小部件将过滤数据源(如果有任何文本);这会触发数据源更改事件,从而导致在dataBound
方法中触发AutoComplete.refresh
事件(如果需要,窗口小部件会更新其视图)。
如果输入中没有文本,则不会过滤数据源,因此不会触发dataBound
事件(在这种情况下,自动完成只会关闭其弹出窗口)。
如果这让您感到困扰,并且在清除输入时希望触发dataBound
,则可以自定义窗口小部件的搜索方法:
kendo.ui.AutoComplete.fn.search = (function (search) {
return function (word) {
word = word || this._accessor();
var length = word.length;
if (!length) {
this.dataSource.filter({}); // clear the data source filter
}
search.apply(this, arguments);
};
})(kendo.ui.AutoComplete.fn.search);
(demo)