Select2设置选定值的新方法

时间:2015-02-21 17:59:48

标签: jquery jquery-select2

我用来为select(使用Select2)设置加载时的默认值,代码如下:

$('#soff_gar').select2({placeholder: "Scegli", initSelection: true }).select2("val","<?php echo $garante; ?>");

在控制台上升级到版本4.0我读到:“Select2:select2("val")方法已被弃用,将在以后的Select2版本中删除。请改用$ element.val()。”所以我尝试将代码更改为

$('#soff_gar').select2({placeholder: "Scegli", initSelection: true }).val("<?php echo $garante; ?>");

$('#soff_gar').select2({placeholder: "Scegli"}).val("<?php echo $garante; ?>");

但它们都不起作用。我究竟做错了什么?任何提示?

1 个答案:

答案 0 :(得分:29)

来自the release notes

  

您应该直接在底层元素上调用.val   代替。如果您需要第二个参数(triggerChange),那么   也应该在元素上调用.trigger(“change”)。

     

$("select").val("1"); // instead of $("select").select2("val", "1");

所以,如果你有一个选择元素:

<select id="mySelect">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

过去你会像这样初始化它:

$("#mySelect").select2().select2("val","audi");

这已被替换为:

$("#mySelect").select2();
$("#mySelect").val("audi").trigger("change");

对你而言,我想这会转化为:

$('#soff_gar').select2({
  placeholder: "Scegli", 
  initSelection: true 
});
$('#soff_gar').val(<?php echo $garante; ?>).trigger("change");

虽然,你是否有任何理由以编程方式进行此操作?

参考我的例子,这也可行:

<option value="audi" selected>Audi</option>

HTH