JQuery自动完成功能不会过滤结果

时间:2015-09-03 11:53:57

标签: jquery autocomplete

是的,论坛里有很多问题,但不知怎的,对我来说都不行。我的工作并不是很特别。

我的自动填充功能会填充结果,但结果不会被过滤

我的代码是:

$("#empName").autocomplete({
    source: function(request, response) {
        $.ajax({
            url: "api/clientEmp/of/" + sessionClientId + "/notingroup/" + groupId,
            type: "GET",
            dataType: "json",
            data: {
                term: $("#empName").val()
            },
            success: function(data) {
                response($.map(data, function(item) {
                    return {
                        label: item.EmpName,
                        value: item.EmpId
                    };
                }));
            }
        });
    },
    minLength: 0,
    focus: function(event, ui) {
        $("#empName").val(ui.item.label);
    }
});    

json输出是这样的

[
    {
        "EmpId": 26,
        "EmpNum": "Rel-72015-31",
        "EmpName": "R.durai"
    },
    {
        "EmpId": 21,
        "EmpNum": "REL-42015-22",
        "EmpName": "Zishan"
    },
    {
        "EmpId": 56,
        "EmpNum": "Rel-22015-19",
        "EmpName": "Raj Singh"
    }
]

它巧妙地显示了选项,但是当我输入任何内容时,所有结果都显示出来并且不会被过滤

我错过了一段要求过滤结果的代码。任何人都可以建议。

提前感谢。

1 个答案:

答案 0 :(得分:4)

$("#empName").autocomplete({
 source: function(request, response) {
    $.ajax({
        url: "api/clientEmp/of/" + sessionClientId + "/notingroup/" + groupId,
        type: "GET",
        dataType: "json",
        data: {
            term: $("#empName").val()
        },
        success: function(data) {
            var array = $.map(data, function(item) {
                return {
                    label: item.EmpName,
                    value: item.EmpId
                };
            });

             //call the filter here
                response($.ui.autocomplete.filter(array, request.term));
        }
    });
},
         minLength: 0,
      focus: function(event, ui) {
        $("#empName").val(ui.item.label);
      }
   }); 
相关问题