簡體   English   中英

加載頁面時如何填寫 select2 (4.0) 中的所有數據?

[英]How can I fill all data in select2 (4.0) when page loaded?

我正在使用 select2 插件(v.4.0)。 我正在嘗試做的事情:

    $("#search-input-chains").select2({
                    placeholder: "Unit",
                    theme: "bootstrap4",
                    allowClear: true,
                    initSelection: function (element, callback) {
                        callback({id: 1, text: 'Text'});
                    },
                    ajax: {
                        url: function () {
                            return getURLForFilial();
                        },
                        dataType: 'json',
                        delay: 250,
                        processResults: function (response) {
                            console.log(response);
                            return {
                                results: response
                            };
                        },
                        cache: false
                    }
                });
function getURLForFilial() {
                return '/user/rest/data/entry/units/branches?type=1';
            }

我需要了解,我的控件是否有從 DB 檢索到的數據,如果沒有數據 - 此 select 列表不應被激活。 我發現了如何理解數據量:

$("#search-input-chains").data().select2.results.$results[0].childNodes.length

(也許還有另一種更好的方法?)

但是這段代碼返回 0,直到我激活(單擊)select2 框並觸發 AJAX 請求以查找數據。

我讀了很多關於如何執行 AJAX 的預調用,但它不起作用。 我試圖以這種方式觸發 select2 上的事件:

 $("#search-input-chains").val().trigger('change');

請建議,如何通過頁面加載將數據加載到我的 select2 控件,以了解我是否需要禁用此 select?

我通過 AJAX 做到了:

ajax({
    type: 'GET',
    url: '/user/rest/data/entry/units/branches?type=1'
}).then(function (data) {
    if (data.length !== 0) {
        chainsSelectElement.prop("disabled", false);
        chainSelectorHasData = true;
    } else {
        // create the option and append to Select2
        let option = new Option('Nothing', 'null', true, true);
        chainsSelectElement.append(option);
        chainSelectorHasData = false;
        chainsSelectElement.prop("disabled", true);
    }
    getDataForSubdivisions();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM