我有一个AutoComplete小部件绑定到数据源,如下所示:
<input data-filter="contains" data-role="autocomplete" data-bind="source: styleData" data-text-field="style" id="style-name" />
我在数据源中有以下项目:
当我在自动完成框中输入A时,它会自动按预期过滤掉最后一项。然后,如果我点击B,第二个项目也会被过滤掉。如果我然后按下退格键,则第二个项目重新出现。但是,使用最终退格键时,第三个项目不会出现。 $('#style-name').getKendoAutoComplete()
的值已解析为空字符串,但dataSource的过滤器仍会列出{field: 'style', logic: 'contains', value: 'A'}
。
我在Windows 8.1 Update 1上对Firefox 30和IE11进行了测试,两者都给出了相同的结果。
答案 0 :(得分:1)
这是因为
data-min-length="1"
此属性仅在您输入至少一个字符时才会触发自动完成。
如果要显示最少1个字符的所有结果,那么您可能正在寻找一个ComboBox。
答案 1 :(得分:0)
所以我花了一些时间来阅读源代码,我想这个功能的目的是搜索功能的以下几行(kendo.autocomplete.js,2014年第1季度,第301行):
if (!length) {
that.popup.close();
} else if (length >= that.options.minLength) {
that._open = true;
that._filterSource({
value: ignoreCase ? word.toLowerCase() : word,
operator: options.filter,
field: options.dataTextField,
ignoreCase: ignoreCase
});
}
!长度为0的计算结果为true,关闭弹出窗口而不更改过滤器。我将在条件之外移动_filterSource行来解决问题。