处理数据库中的信息时禁用kindo自动完成

时间:2014-04-04 22:00:49

标签: jquery sql-server kendo-ui

我在帮助函数中有我的Kindo AutoComplete。当我进行搜索并单击自动完成结果时,会触发一个从数据源中提取数据的函数。信息返回并显示在页面上需要一段时间。在此过程中,我需要禁用自动完成功能,并且必须在处理和显示数据后启用它。基本上,我需要阻止用户在处理第一个选定的请求时进行新的搜索。

2 个答案:

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

您应该使用requestStartrequestEnd来控制何时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);
    }
});

此处示例:http://jsfiddle.net/OnaBai/nQ5JJ/1/