我用来为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; ?>");
但它们都不起作用.我究竟做错了什么?任何提示?
解决方法
从
the release notes开始:
You should directly call .val on the underlying element
instead. If you needed the second parameter (triggerChange),you
should also call .trigger(“change”) on the element.
$("select").val("1"); // instead of $("select").select2("val","1");
所以,如果你有一个select元素:
<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”)选择2()选择2( “VAL”,“奥迪”).
这已被替换为:
$("#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