JQuery select2 définit la valeur par défaut d'une option dans la liste?
je veux pouvoir définir la valeur par défaut/sélectionnée d'un élément select en utilisant le plugin jQuery Select2.
9 réponses
une autre façon-il suffit d'ajouter un selected = "selected"
l'attribut select
balisage et d'appeler select2
. Il faut prendre votre valeur sélectionnée. Pas besoin de JavaScript supplémentaire. Comme ceci :
Balise
<select class="select2">
<option id="foo">Some Text</option>
<option id="bar" selected="selected">Other Text</option>
</select>
JavaScript
$('select').select2(); //oh yes just this!
Voir violon : http://jsfiddle.net/6hZFU/
Edit: (Merci, Jay Haase!)
Si cela ne fonctionne pas, essayez de définir la val
select2
null
pour effacer la valeur, comme ceci:
$('select').select2("val", null); //a lil' bit more :)
Après cela, il est assez simple de définir val
"Whatever You Want"
.
Une façon d'y parvenir est...
$('select').select2().select2('val', $('.select2 option:eq(1)').val());
donc en gros vous initialisez d'abord le plugin puis vous spécifiez la valeur par défaut en utilisant le paramètre 'val'. La valeur réelle est tirée de l'option spécifiée, dans ce cas #1. Ainsi, la valeur sélectionnée dans cet exemple serait "bar".
<select class=".select2">
<option id="foo">Some Text</option>
<option id="bar">Other Text</option>
</select>
j'Espère que cela est utile à quelqu'un d'autre.
$("#id").select2("val", null); //this will not work..you can try
vous devriez vraiment le faire...intialiser et ensuite définir la valeur..c'est aussi comme ça que ça a marché pour moi.
$("#id").select2().select2("val", null);
$("#id").select2().select2("val", 'oneofthevaluehere');
Les solutions ci-dessus ne fonctionne pas pour moi, mais ce code à partir de Select2 propre site web:
$('select').val('US'); // Select the option with a value of 'US'
$('select').trigger('change'); // Notify any JS components that the value changed
J'espère que cela aidera ceux qui sont en difficulté, comme je l'étais.
4.x version
$('#select2Id').val(__INDEX__).trigger('change');
pour sélectionner la valeur avec INDEX
$('#select2Id').val('').trigger('change');
pour ne rien sélectionner (spectacle de l'espace réservé si elle est)
ajax select2 multiples sélectionnez le menu déroulant j'ai fait comme ceci:
//preset element values
//topics is an array of format [{"id":"","text":""}, .....]
$(id).val(topics);
setTimeout(function(){
ajaxTopicDropdown(id,
2,location.origin+"/api for gettings topics/",
"Pick a topic", true, 5);
},1);
// ajaxtopicDropdown is dry fucntion to get topics for diffrent element and url
si vous utilisez un tableau source de données, vous pouvez faire quelque chose comme ci-dessous -
$(".select").select2({
data: data_names
});
data_names.forEach(function(name) {
if (name.selected) {
$(".select").select2('val', name.id);
}
});
cela suppose que l'un des éléments que vous voulez définir par défaut a un attribut supplémentaire appelé selected et nous l'utilisons pour définir la valeur.
Comment est-ce?
Balise
<select>
<option value="foo">Some Text</option>
<option value="bar">Other Text</option>
</select>
JavaScript
$('select').val('bar').select2();