在select2中预选值

时间:2014-03-18 14:08:50

标签: 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) {
            return {
                q: term, // search term 
                page_limit: 10, }; 
        }, 
        results: function (data, page) { 
                return {results: data};
        }
    }
});    

我试过这个预选值1049

$('#e6').select2('val', '1049');

但这不会在文本框中设置值。

有什么想法吗?

7 个答案:

答案 0 :(得分:17)

如果有人想知道如何解决这个问题

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

答案 1 :(得分:2)

您可以使用initSelection方法

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

检查此link并加载远程数据部分here

答案 2 :(得分:2)

进行多项选择......

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);

答案 3 :(得分:1)

最适合我的解决方案(在文档中有说明)是:

$('#mySelect2').val('1'); // Select the option with a value of '1'
$('#mySelect2').trigger('change'); // Notify any JS components that the value changed

答案 4 :(得分:0)

我可以和

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

答案 5 :(得分:0)

在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');

答案 6 :(得分:0)

这对我有用

<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>