Obtient la valeur de la boîte multiselect en utilisant jQuery ou pure JS

Dans le code ci-dessous, comment obtenir les valeurs de la boîte multiselect dans la fonction val() utilisant jQuery ou pure JavaScript?

  function val() { //Get values of mutliselect drop down box } $(document).ready(function () { var flag = 0; $('#emp').change(function () { var sub = $("OPTION:selected", this).val() if (flag == 1) $('#new_row').remove(); $('#topics').val(''); var html = 'Topics: '; var idarr = new Array(); var valarr = new Array(); { % for top in dict.tops % } idarr.push('{{top.is}}'); valarr.push('{{pic.ele}}'); { % endfor % } for (var i = 0; i < idarr.length; i++) { if (sub == idarr[i]) { html += '' + valarr[i] + ''; } } html += '

'; $('#tops').append(html); flag = 1; }); }); Emp:     1

Merci d’avance!

la fonction val appelée depuis la select retournera un tableau s’il s’agit d’un multiple. $('select#my_multiselect').val() retournera un tableau des valeurs pour les options sélectionnées – vous n’avez pas besoin de passer en boucle et de les récupérer vous-même.

Je pense que la réponse peut être plus facile à comprendre comme ceci:

 $('#empid').on('change',function() { alert($(this).val()); console.log($(this).val()); }); 
   
Hold CTRL / CMD for selecting multiple fields

Ce doc est comme un Saint Graal pour select et jquery. http://comp345.awardspace.com/select_element_cheatsheet.pdf

 var data=[]; var $el=$("#my-select"); $el.find('option:selected').each(function(){ data.push({value:$(this).val(),text:$(this).text()}); }); console.log(data) 

Selon la page du widget , il devrait être:

 var myDropDownListValues = $("#myDropDownList").multiselect("getChecked").map(function() { return this.value; }).get(); 

Ça marche pour moi 🙂

Cela m’a donné la valeur et le texte des options sélectionnées pour le plugin jQuery multiselect.js :

 $("#selectBox").multiSelect({ afterSelect: function(){ var selections = []; $("#selectBox option:selected").each(function(){ var optionValue = $(this).val(); var optionText = $(this).text(); console.log("optionText",optionText); // collect all values selections.push(optionValue); }); // use array "selections" here.. } }); 

très utile si vous en avez besoin pour votre événement “onChange”;)

Vous pourriez faire comme ça aussi.

 

Ensuite, prenez la sélection multiple à partir du code PHP suivant. Il imprime les multiples valeurs sélectionnées en conséquence.

 $shift=$_POST['selectDuration']; print_r($shift);