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.

43
demandé sur Leith 2013-06-06 22:39:08

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 valselect2null 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".

43
répondu krishgopinath 2016-04-13 02:41:57

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.

22
répondu user857276 2013-08-03 04:18:38
$("#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');
20
répondu rajesh_kw 2013-09-06 18:56:13

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

page Web trouvée ici

J'espère que cela aidera ceux qui sont en difficulté, comme je l'étais.

7
répondu avebone 2017-11-09 00:02:00

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)

2
répondu Dmitry 2017-12-19 07:43:13

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
0
répondu Ajeet Lakhani 2016-01-15 11:50:32
    $('select').select2("val",null);
0
répondu charu joshi 2016-06-21 10:45:38

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.

0
répondu Aniket Thakur 2017-12-10 16:26:17

Comment est-ce?

Balise

<select>
   <option value="foo">Some Text</option>
   <option value="bar">Other Text</option>
</select>

JavaScript

$('select').val('bar').select2();
0
répondu usayama_dx 2018-07-04 08:16:36