57 votes

Plugin JQuery Bootstrap Multiselect - Définissez une valeur comme sélectionnée dans la liste déroulante multiselect

J'ai une liste déroulante multisélection à l'aide du plugin Boostrap Multiselect ( http://davidstutz.de/bootstrap-multiselect/ ) comme ci-dessous

 <select id="data" name="data" class="data" multiple="multiple">
  <option value="100">foo</option>
  <option value="101">bar</option>
  <option value="102">bat</option>
  <option value="103">baz</option>
</select>

Au chargement de la page, j'obtiendrai un tableau de valeurs comme [101,102]. Je devrais parcourir le tableau et sélectionner les valeurs (les cases à cocher correspondant aux identifiants doivent être cochées). S'il vous plaît aider.

158voto

Tapon Sayeem Points 1529
//Do it simple

var data="1,2,3,4";

//Make an array

var dataarray=data.split(",");

// Set the value

$("#multiselectbox").val(dataarray);

// Then refresh

$("#multiselectbox").multiselect("refresh");

25voto

Prince Points 843

Merci à tous pour vos réponses.

En prenant toutes vos réponses comme ligne directrice, j'ai résolu le problème avec le code ci-dessous :

 var valArr = [101,102];
i = 0, size = valArr.length;
for(i; i < size; i++){
  $("#data").multiselect("widget").find(":checkbox[value='"+valArr[i]+"']").attr("checked","checked");
  $("#data option[value='" + valArr[i] + "']").attr("selected", 1);
  $("#data").multiselect("refresh");
}

Merci encore une fois pour tout votre soutien.

20voto

Yatin Points 1008

C'est censé être aussi simple que ça :

 <select id='multipleSelect' multiple='multiple'>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
<script type='text/javascript'>
    $('#multipleSelect').val(['1', '2']);
</script>

Vérifiez mon violon : https://jsfiddle.net/luthrayatin/jaLygLzo/

10voto

Shef Points 21595
var valArr = [101,102], // array of option values
    i = 0, size = valArr.length, // index and array size declared here to avoid overhead
    $options = $('#data option'); // options cached here to avoid overhead of fetching inside loop

// run the loop only for the given values
for(i; i < size; i++){
    // filter the options with the specific value and select them
    $options.filter('[value="'+valArr[i]+'"]').prop('selected', true);
}

Voici une démo

5voto

Basant Rules Points 453

fonctionne bien pour moi, changez les identifiants selon vos besoins.

 $("#FormId select#status_id_new").val('');
 $("#FormId select#status_id_new").multiselect("refresh");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X