Javascript 在select2中预选值

Javascript 在select2中预选值,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,Texbox使用Select2和如何设置预选值动态填充远程调用。这是密码 <input type="hidden" id="e6"> $("#e6").select2({ placeholder: "Search for a movie", minimumInputLength: 1, ajax: { url: url, dataType: 'jsonp', data: function (term, page

Texbox使用Select2和如何设置预选值动态填充远程调用。这是密码

<input type="hidden" id="e6">

$("#e6").select2({
    placeholder: "Search for a movie",
    minimumInputLength: 1,
    ajax: {
        url: url,
        dataType: 'jsonp',
        data: function (term, page) {
            return {
                q: term, // search term 
                page_limit: 10, }; 
        }, 
        results: function (data, page) { 
                return {results: data};
        }
    }
});    

$(“#e6”)。选择2({
占位符:“搜索电影”,
最小输入长度:1,
阿贾克斯:{
url:url,
数据类型:“jsonp”,
数据:功能(术语,第页){
返回{
q:term,//搜索术语
页码限制:10,};
}, 
结果:功能(数据,页面){
返回{结果:数据};
}
}
});    
我试着预先选择值1049

$('e6')。选择2('val','1049')

但这并没有设置文本框上的值


有什么想法吗?

您可以使用initSelection方法

initSelection: function(element, callback) {
callback({id: 1, text: 'default selection with id 1' });
},

如果有人想知道如何解决此问题,请选中此项并加载远程数据部分

$("#e6").select2('data', {id: '1049', text: 'MyLabel'});

对于多个选择

var li = $("#e6");
li.select2({
    placeholder: "Placeholder"
});

var unselected = li.find('option:not(:selected)');
var selected = [];
for (var i = 0; i < unselected.length; i++) {
    selected[i] = { id: unselected[i].value, text: unselected[i].text };
}
li.select2('data', selected);
var li=$(“#e6”);
li.select2({
占位符:“占位符”
});
var unselected=li.find('option:not(:selected');
所选var=[];
对于(变量i=0;i
我找到了它

$("#e6").val("input id of the select2 option here").trigger("change")

2019年,这对我起了作用

    // Create a DOM Option and pre-select by default~
    var newOption = new Option(data.text, data.id, true, true);
    // Append it to the select
    $('#mySelect2').append(newOption).trigger('change');
这对我有用

<script>
  $(function() {
    if (window.formPrefill) {
      // setTimeout to force script to run when all the stack on doc.ready is complete.
      setTimeout(() => $(".js-select2-companies").select2('data', window.formPrefill), 10);
    }
  })
</script>

$(函数(){
if(window.formPrefill){
//setTimeout可在doc.ready上的所有堆栈完成时强制运行脚本。
setTimeout(()=>$(.js-select2-companys”).select2('data',window.formPrefill),10);
}
})

对我有效的解决方案(文档中有详细说明)是:


这不起作用,只有当附加到的隐藏输入具有非空值属性时才会调用initSelection。您有一个拼写错误-$(“#e6”)@smith如何预先选择多个值???@VikashSingh使用以下命令:
[{id:'1049',text:'MyLabel'},{id:'10',text:'Mybel
$('#mySelect2').val('1'); // Select the option with a value of '1'
$('#mySelect2').trigger('change'); // Notify any JS components that the value changed