Kendo UI自动完成数据绑定事件不会触发

时间:2014-03-10 10:53:06

标签: javascript jquery mobile kendo-ui

我正在使用Kendo UI开发移动应用程序。在我的脚本文件中,

$("#name").kendoAutoComplete({
        dataBound: onChange
    });

假设我的自动填充框中包含字符串“abc”。当我删除一个字母时,它会触发数据绑定事件。但是我删除了自动完成的最后一个字母(清空自动完成),它不会触发数据绑定事件。任何人都可以解释这个问题吗?

1 个答案:

答案 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