Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 加载页面时,如何填写select2(4.0)中的所有数据?_Javascript_Ajax_Jquery Select2_Jquery Select2 4_Ui Select2 - Fatal编程技术网

Javascript 加载页面时,如何填写select2(4.0)中的所有数据?

Javascript 加载页面时,如何填写select2(4.0)中的所有数据?,javascript,ajax,jquery-select2,jquery-select2-4,ui-select2,Javascript,Ajax,Jquery Select2,Jquery Select2 4,Ui Select2,我正在使用select2插件(v.4.0)。 我想做的是: $(“#搜索输入链”)。选择2({ 占位符:“单位”, 主题:“bootstrap4”, allowClear:是的, initSelection:函数(元素,回调){ 回调({id:1,text:'text'}); }, 阿贾克斯:{ url:函数(){ 返回geturlforfull(); }, 数据类型:“json”, 延误:250, processResults:函数(响应){ 控制台日志(响应); 返回{ 结果:反应 }; }

我正在使用select2插件(v.4.0)。 我想做的是:

$(“#搜索输入链”)。选择2({
占位符:“单位”,
主题:“bootstrap4”,
allowClear:是的,
initSelection:函数(元素,回调){
回调({id:1,text:'text'});
},
阿贾克斯:{
url:函数(){
返回geturlforfull();
},
数据类型:“json”,
延误:250,
processResults:函数(响应){
控制台日志(响应);
返回{
结果:反应
};
},
缓存:false
}
});
函数geturlforfull(){
返回'/user/rest/data/entry/units/branchs?type=1';
}
我需要了解,我的控件是否有从DB检索到的数据,如果没有数据,则不应激活此选择列表。 我发现如何理解数据量:

$(“#搜索输入链”).data().select2.results.$results[0].childNodes.length
(也许还有其他更好的方法?)

但这段代码返回0,直到我激活(单击)select2框并触发AJAX请求以查找数据为止

我读了很多关于如何执行预先取消AJAX的文章,但它不起作用。 我尝试通过以下方式触发select2上的事件:

$(“#搜索输入链”).val().trigger('change');
请注意,如何使用页面加载将数据加载到select2控件,以了解是否需要禁用此选择?

我通过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();
});