如何以编程方式更改select2值

时间:2016-08-04 16:43:33

标签: jquery-select2 jquery-select2-4

我在bootstrap模式中有一个select2框,我想更改select2框的值,但它不起作用。

我在之前的帖子和结果中尝试过每一个解决方案,但没有一个能让它发挥作用。

我使用 select2 4.0.2 ,我测试过:

$('#select_id').val('val').trigger('change.select2');

$('#select_id').val('val').trigger('change');

$('#select_id').val('val').change()

它可以工作一到两次然后停止工作(随机)

仅当我将select2更改回3.x.x

时,它才能正常工作

5 个答案:

答案 0 :(得分:27)

$('#select_id').val('val').trigger('change');

是正确的方法,请参阅here

答案 1 :(得分:4)

$('#select_id').select2('val', selectedValue);

答案 2 :(得分:0)

对于带有Ajax调用的Select2,我遇到了很多选择,但是没有一个可行。然后我来到下面的解决方案,它就像魅力 $(“#select_id”)。html($(“”)。val('val')。text('text'))。trigger(“ change”);

答案 3 :(得分:0)

如果您像我一样,为select2:selecting事件添加了自定义处理程序,则更改值和触发自定义select2事件的正确完整答案将是:

$('#select_id').val('val').trigger('change').trigger({
     type: 'select2:event_name', // It worked for me with select2:selecting and select2:select
     params: {
       args: { // Only use 'args' if using select2:selecting, select2:select does not use it
         data: varWithEventData
       }
     }
});

答案 4 :(得分:0)

要以编程方式为 Select2 控件选择选项/项目,请使用 jQuery

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

您也可以将数组传递给 val 进行多项选择:

$('#mySelect2').val(['1', '2']);
$('#mySelect2').trigger('change'); // Notify any JS components that the value changed