0

http://jqueryui.com/autocomplete/#remote

      $(document).ready(function() {
        var Employees = function(request, response) {
            var value1 = document.getElementById('<%= txtEmployeeID.ClientID %>').value.split(" ");
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "WebService.asmx/GetEmployees",
                data: "{'keywords':'" + value1 + "'}",
                dataType: "json",
                async: true,
                success: function(data) {
                    response(data.d);
                },
                error: function(result) {
                    //alert("Error");
                }
            });
        }
        $('#<%= txtEmployeeID.ClientID %>').autocomplete({
            autoFocus: true, source: Employees
        });
    });

这是自动完成从数据库中获取价值的代码。

这在键入每个字母然后过滤值时运行。

我正在寻找自动完成功能,它将在开始时将所有员工姓名加载到 var Employee 中,然后无需重试过滤自动完成功能将通过自动过滤功能来完成。

4

4 回答 4

2

您可以获取员工,将结果存储在一个数组中,并提供这个数组作为选项 source

于 2012-10-10T09:00:37.727 回答
1

添加选项选择

select( event, ui ):function(){
$(this).disable();
} 
于 2012-10-10T08:56:15.323 回答
1

Jquery AutoComplete 函数始终从您作为参数传递给它的源中过滤。如果您将数组作为源传递,它总是在该数组中查找以进行过滤。

在您的情况下,源是一个函数,它会在您键入后立即获取一个新数组(过滤数组)。

您所要做的就是获取数组并存储在一个变量中,然后将该数组传递给自动完成插件。

你可以试试这个

$(document).ready(function() {
    var Employees = [];
    var value1 = document.getElementById('<%= txtEmployeeID.ClientID %>').value.split(" ");
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "WebService.asmx/GetEmployees",
            dataType: "json",
            async: true,
            success: function(data) {
                Employees = data.d; 
                $('#<%= txtEmployeeID.ClientID %>').autocomplete({
                    autoFocus: true, source: Employees
                });
            },
            error: function(result) {
                //alert("Error");
            }
        });

});
于 2012-10-10T09:05:49.230 回答
0

有一个非常简单的演示,其中包含用于缓存响应并检查数据是否已被检索到的源代码。使用此设置,您无需编写 estra 代码来提前检索值

http://jqueryui.com/autocomplete/#remote-with-cache

点击“查看源”

于 2012-10-10T10:36:11.230 回答