从列表中选择后,Select2 initSelection正在发出2个ajax请求

时间:2017-03-08 10:34:03

标签: javascript jquery ajax select2

我正在使用select2(4.0.3)。我的代码正在运行,并在页面加载和搜索时获取结果。但是,在执行远程搜索并从列表中选择项目后,我的initSelection块再进行2次ajax调用,其中search param是所选值的ID。我只希望我的initselection在页面加载下拉列表的预填充值时起作用。任何帮助表示赞赏。

$(".venue-dropdown").select2({
    placeholder: "Enter venue name",
    allowClear: true,
    ajax: {
        url: $('#contextPath').val() + "/ajax/get-venue",
        dataType: 'json',
        delay: 250,
        data: function (params) {
            return {
                search: params.term, // search term
                page: params.page
            };
        },
        processResults: function (data) {
            return {
                //results: data.items,
                results: $.map(data, function (obj) {
                    return {
                        id: obj.uniqueName,
                        text: obj.name + ' (' + obj.postcode + ')'
                    }
                }),
            };
        },
        cache: true
    },initSelection: function(element, callback) {
        var id = $(element).val();
        if (id && id !== "") {
            $.ajax($('#contextPath').val() + "/ajax/get-venue", {
                data: {
                    search: id
                },
                dataType: "json",
                cache: false,
            }).done(function(data) {
                var result = {'id':data[0].uniqueName,'text':data[0].name};
                callback(result);
            });
        }
    },
    escapeMarkup: function (markup) {
        return markup;
    },
    minimumInputLength: 2
});

搜索时首先制作ajax>>>得到会场?搜索= EH8

选择选项2后,遵循ajax请求

GET-场地搜索= sportexercisepleasanceeh89tj&安培; _ = 1488967266450

GET-场地搜索= sportexercisepleasanceeh89tj&安培; _ = 1488967266451

0 个答案:

没有答案