我想在javascript中填充一个数组,该数组从不同的选择框中获取具有相同名称的所有值
所以例如,如果我有这样的HTML:
<select name="selectbox[]">
<option value="value1">text1</option>
<option value="value2">text2</option>
</select>
<select name="selectbox[]">
<option value="value1">text1</option>
<option value="value2">text2</option>
</select>
我必须获取两个选择框的选定值并将其放入数组中。
我做了什么: $("input[name=selectbox\\[\\]]").map(function(){return $(this).val();});
不起作用。
一个类似的例子 适用于文本框:
$("input[name=textbox\\[\\]]").map(function(){return this.value;});
感谢您的帮助!
答案 0 :(得分:2)
也许是因为它是select
而不是input
??
var $select = $("<select multiple='multiple' />");
for (var x=0; x<3; x++) {
$select.append("<option value='"+x+"' selected='selected'>"+x+"</option>");
}
console.log($select.val());
// ["0", "1", "2"]
console.log($select.map(function() { return $(this).val() }));
// jQuery("0", "1", "2")
// create a second select:
$select = $select.clone(true).andSelf();
console.log($select.map(function() { return $(this).val() }));
// jQuery("0", "1", "2", "0", "1", "2")