我用来为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; ?>");
但它们都不起作用。我究竟做错了什么?任何提示?
答案 0 :(得分:29)
您应该直接在底层元素上调用.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