我在帮助函数中有我的Kindo AutoComplete。当我进行搜索并单击自动完成结果时,会触发一个从数据源中提取数据的函数。信息返回并显示在页面上需要一段时间。在此过程中,我需要禁用自动完成功能,并且必须在处理和显示数据后启用它。基本上,我需要阻止用户在处理第一个选定的请求时进行新的搜索。
答案 0 :(得分:0)
Kendo AutoComplete有一个启用或禁用的方法。
http://docs.telerik.com/kendo-ui/api/web/autocomplete#methods-enable
来自链接的示例:
<input id="autocomplete" />
<script>
$("#autocomplete").kendoAutoComplete();
var autocomplete = $("#autocomplete").data("kendoAutoComplete");
autocomplete.enable(false);
</script>
答案 1 :(得分:0)
您应该使用requestStart
和requestEnd
来控制何时enable
或禁用(enable(false)
)自动完成功能。此事件处理程序是DataSource的一部分。
示例:
var ds = new kendo.data.DataSource({
transport: {
read : {
url: "..."
}
},
requestStart: function (e) {
ac.enable(false);
},
requestEnd: function(e) {
ac.enable(true);
}
});
此处示例:http://jsfiddle.net/OnaBai/nQ5JJ/
编辑:如果你想要的是在用户选择一个选项后阻止使用自动完成功能,那么你应该在close
事件被触发时禁用自动完成功能,并在此时再次启用新数据可用。
var ac = $("input").kendoAutoComplete({
dataSource: states,
close : function (e) {
// Disable autocomplete while we read from `ds` DataSource
ac.enable(false);
// Trigger ope
ds.read();
}
}).data("kendoAutoComplete");
当read
操作完成后,您再次启用自动完成功能:
var ds = new kendo.data.DataSource({
transport: {
read : {
url : "...";
}
},
requestEnd: function(op) {
ac.enable(true);
}
});