我在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
时,它才能正常工作答案 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