在下面的代码中,如何使用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:
<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;">
提前致谢!
答案 0 :(得分:104)
从val
调用的select
函数将返回一个数组,如果它是一个数组。 $('select#my_multiselect').val()
将返回所选选项的值数组 - 您无需循环访问并自行获取。
答案 1 :(得分:25)
我认为答案可能更容易理解:
$('#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
如果在列表中选择“Carrot”和“Raisins”,输出将为“1,3”。
答案 2 :(得分:10)
var data=[];
var $el=$("#my-select");
$el.find('option:selected').each(function(){
data.push({value:$(this).val(),text:$(this).text()});
});
console.log(data)
答案 3 :(得分:1)
根据widget's page,它应该是:
var myDropDownListValues = $("#myDropDownList").multiselect("getChecked").map(function()
{
return this.value;
}).get();
它对我有用:)
答案 4 :(得分:1)
这让我了解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..
}
});
非常有用,如果你需要它为你的&#34; onChange&#34;事件;)