SELECT2 ajax - 预加载的选项

时间:2013-11-20 11:51:16

标签: ajax jquery drupal jquery-select2

目前我有一个可以使用ajax请求到服务器的下拉列表,但是在select2初始化时附加一些默认选项也很不错。使用 initSelection 函数,我只能附加一个选项,但不能附加完整的预加载数组。我也试图使用 data 选项,但它也不起作用。 这是我的代码:

$("#address-select2").select2({
    placeholder: "--- ' . t('I\'ll add new address') . ' ---",
    minimumInputLength: 3,
    ajax: { 
        url: "/ajax/address_autocomplete/from",
        dataType: "json",
        type: "POST",
        data: function (term, page) {
            return {
                q: term
            };
        },
        results: function (data, page) {
            return {results: data.addresses};
        }
    }, 
    initSelection: function (element, callback) {
        $.ajax("/ajax/address_autocomplete/from/100", {
            dataType: "json"
        }).done(function(data) {
            callback(data.addresses[0]);
        });
    },
    formatResult: function (address) {
        return "<span class=\"dropdown-element\">" + address.text + "</span>";
    },
    formatSelection: function (address) {
        return address.text;
    },
    formatNoMatches: function () { return "' . t('No result found!') . '";},
    formatSearching: function () { return "' . t('Searching...') . '"; },
    formatLoadMore: function (pageNumber) { return "' . t('Loading results...') . '"; },
    dropdownCssClass : "bigdrop"
});

1 个答案:

答案 0 :(得分:1)

请不要通过callback(data.addresses[0]); 请直接传递数组callback(data.addresses); 我应该这样做。