自动填充:如何限制选项框中显示的字段数量?

时间:2016-06-03 20:25:50

标签: jquery autocomplete

我想填充一个包含20多个字段的大表单。目前,我对DB进行了一次Ajax调用,该调用会提取与term匹配的所有可能的匹配。我不希望每个结果的所有20个字段都显示在选择框中。只需说出姓名和地址。那么如何限制选择框中显示的内容呢?然后,当用户进行选择时,将使用所有隐藏字段填充表单。或者,我应该进行第二次AJAX调用以获取其他字段吗?

$('#customer').autocomplete({
    minLength: 2,
    source: function(request, response,term) {
        var param = request.term;

        $.ajax({
            url: "quotes/customer_search/"+param,
            dataType: "json",
            type:"GET",
            success: function (data) {

                response($.map(data, function(item, index) {

               // I want to restrict the number of these values in the options box to 2
                return item.firstname1+" "+item.lastname1+" 
                "+item.telephone1+" "+item.company_name+" "+item.street+"
                "+item.city+" "+item.province;

                    }
                ));//END Success
            },
        });//END AJAX
    },

1 个答案:

答案 0 :(得分:0)

我只是颠倒逻辑。而不是在自动完成源回调中进行ajax调用,只需执行ajax调用,并在成功回调中填充自动完成和其他表单字段。

这样的事情:

$.ajax({
    url: "quotes/customer_search/"+param,
    dataType: "json",
    type:"GET",
    success: function (data) {

        $('#customer').autocomplete({
            minLength: 2,
            source: function(request, response,term) {
                var param = request.term;
                response($.map(data, function(item, index) {
                    return item.firstname1+" "+item.lastname1;
                }
            }
        };

        //now use data to fill the other values
        //...
    }
});