使用jQuery或纯JS获得多选框的价值

在下面显示的代码中,如何使用jQuery或纯JavaScript获取函数val()中多选框的值?

 <script> 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 = '<tr id="new_row" class="new_row"><td>Topics:</td><td> <select id="topic_l" name="topic_l" class="topic_l" multiple="multiple">'; 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 += '<option value="' + idarr[i] + '" >' + valarr[i] + '</option>'; } } html += '</select></p></td></tr>'; $('#tops').append(html); flag = 1; }); }); </script> Emp:&nbsp;&nbsp;&nbsp;&nbsp; <select id="emp" name="emp"> <option value=""></option> <option value="1">1</option> </select> <div name="tops" id="tops"></div> <input type="submit" value="Create Template" id="create" onclick="javascript:var ret=val();return ret;"> 

提前致谢!

select调用的val函数将返回一个数组,如果它的倍数。 $('select#my_multiselect').val()将返回所选选项值的数组 – 你不需要循环并自己获取它们。

我想这个答案可能比较容易理解:

 $('#empid').on('change',function() { alert($(this).val()); console.log($(this).val()); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> <select id="empid" name="empname" multiple="multiple"> <option value="0">Potato</option> <option value="1">Carrot</option> <option value="2">Apple</option> <option value="3">Raisins</option> <option value="4">Peanut</option> </select> <br /> Hold CTRL / CMD for selecting multiple fields 

这个文档就像select和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) 

根据小部件的页面 ,它应该是:

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

这个对我有用 :)

这给了我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.. } }); 

非常有用,如果你需要它为你的“onChange”事件;)

你也可以这样做。

 <form action="ResultsDulith.php" id="intermediate" name="inputMachine[]" multiple="multiple" method="post"> <select id="selectDuration" name="selectDuration[]" multiple="multiple"> <option value="1 WEEK" >Last 1 Week</option> <option value="2 WEEK" >Last 2 Week </option> <option value="3 WEEK" >Last 3 Week</option> <option value="4 WEEK" >Last 4 Week</option> <option value="5 WEEK" >Last 5 Week</option> <option value="6 WEEK" >Last 6 Week</option> </select> <input type="submit"/> </form> 

然后从下面的PHP代码中select多个。 它相应地打印选定的多个值。

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