Jquery自动完成 - 如何修改返回的数据

时间:2015-07-30 09:42:34

标签: javascript jquery ajax autocomplete

我有这样的代码:

$(document).ready(function () {
    if ($('#au').length <= 0) {
        return;
    }
    var $project = $('#au');
    $project.autocomplete({
        minLength: 4,

        source: function (request, response) {
            $.ajax({
                dataType: "json",
                type: 'post',
                cache: false,
                data: {term: request.term},
                url: '/Movies/ajax/',

                success: function (data) {
                    if (isNaN($('#au').val())) {

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

                                label: item.Movies__name + " " + "(" + item.Movies__id + ")",
                                value: item.Movies__name
                            }
                        }));
                    } else {
                        response($.map(data, function (item) {
                            return {
                                label: item.Movies__id + " " + "(" + item.Movies__name + ")",
                                value: item.Movies__id
                            }
                        }));
                    }
                }
            });
        },
        select: function(event, ui) {
            $("#au").val(ui.item.value);
            $("#au").submit();
        },


        create: function (event, ui) {
        },
        open: function (event, ui) {

        }
    });

});

此代码工作正常。基本上当你输入表格&#34; Alie&#34;时,你会得到

外国人(22) Aliens2(32) Aliens3(43)

或者当您输入Id而不是电影名称时,您将获得:

(22)异己 (22)其他等等......

因此,此代码返回数据列表 - movie和id。

现在我想要,没有id的第一个结果,所以当你输入电影名称时,如#34; Alie&#34;你会得到:

异己 外来(22) 外国人(32)

没有身份证的第一场比赛。

感谢您的回复。

1 个答案:

答案 0 :(得分:0)

response($.map(data, function (item, i) {
      return {
         label: item.Movies__name + (i != 0 ? " (" + item.Movies__id + ")" : ""),
         value: item.Movies__name
      }
}));

在地图功能中使用i作为索引。如果为0,则不显示id。