J'utilise pour définir la valeur par défaut à la charge pour un select (en utilisant Select2) avec un code comme celui-ci:
$('#soff_gar').select2({placeholder: "Scegli", initSelection: true }).select2("val","<?php echo $garante; ?>");
Mise à niveau vers la version 4.0 sur la console, j'ai lu: "Select2: la méthode select2("val")
a été déconseillée et sera supprimée dans les versions ultérieures de Select2. Utilisez plutôt $ element.val ()." J'ai donc essayé de changer mon code en
$('#soff_gar').select2({placeholder: "Scegli", initSelection: true }).val("<?php echo $garante; ?>");
ou
$('#soff_gar').select2({placeholder: "Scegli"}).val("<?php echo $garante; ?>");
mais aucun d'eux ne fonctionne. Qu'est-ce que je fais mal? Un indice?
De les notes de version :
Vous devez plutôt appeler directement .val sur l'élément sous-jacent. Si vous avez besoin du deuxième paramètre (triggerChange), vous devez également appeler .trigger ("change") sur l'élément.
$("select").val("1"); // instead of $("select").select2("val", "1");
Donc, si vous avez un élément 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>
Dans le passé, vous l'auriez initialisé comme suit:
$("#mySelect").select2().select2("val","audi");
Cela a été remplacé par:
$("#mySelect").select2();
$("#mySelect").val("audi").trigger("change");
Pour vous, je suppose que cela se traduirait par:
$('#soff_gar').select2({
placeholder: "Scegli",
initSelection: true
});
$('#soff_gar').val(<?php echo $garante; ?>).trigger("change");
Cependant, y a-t-il une raison pour laquelle vous faites cela par programme?
En référence à mon exemple, cela fonctionnerait également:
<option value="audi" selected>Audi</option>
HTH