Javascript 获取表单的多个下拉列表值,并在jquery中作为查询字符串发送
我有一个具有多个属性的下拉列表的表单。现在单击按钮,我想在键名上创建一个值数组作为下拉列表名。但我无法做到这一点。 我必须用ajax以查询字符串的形式发送每个下拉列表的数据 HTMLJavascript 获取表单的多个下拉列表值,并在jquery中作为查询字符串发送,javascript,jquery,Javascript,Jquery,我有一个具有多个属性的下拉列表的表单。现在单击按钮,我想在键名上创建一个值数组作为下拉列表名。但我无法做到这一点。 我必须用ajax以查询字符串的形式发送每个下拉列表的数据 HTML <select multiple="" style="width: 147px;" id="list" name="list" class ="list_class"> <option value="21">A</option> <opti
<select multiple="" style="width: 147px;" id="list" name="list" class ="list_class">
<option value="21">A</option>
<option value="22">B</option>
<option value="23">C</option>
<option value="24">D</option>
<option value="2">E</option>
</select>
<select multiple="" style="width: 147px;" id="list1" name="list1" class ="list_class">
<option value="22">B</option>
<option value="24">D</option>
<option value="2">E</option>
</select>
<select multiple="" style="width: 147px;" id="list2" name="list2" class ="list_class">
<option value="22">B</option>
<option value="24">D</option>
<option value="2">E</option>
</select>
我希望formdata中的值为:
list = ['21','22','23','24','2']
list1 = ['23','24','2']
list2 = ['22','24','2']
试一试
这个怎么样
var list1 = [], list2 = [], list3 = [];
var $list1 = $("#list1").find("option");
$list1.each(function () {
var $option = $(this).attr("value");
list1.push($option);
});
var $list2 = $("#list2").find("option");
$list2.each(function () {
var $option = $(this).attr("value");
list2.push($option);
});
var $list3 = $("#list3").find("option");
$list3.each(function () {
var $option = $(this).attr("value");
list3.push($option);
});
console.log(list1);
console.log(list2);
console.log(list3);
我创建了一个对象(objVal
),并使用“组合”将带有选定值的数组添加到该对象中(对象键是每个选定对象的名称):
$('#添加')。在(“单击”,函数(){
var objVal={};
$('select')。每个(函数(){
var arr=$(':selected',this).map(函数(){
返回此.value;
}).get();
objVal[$(this).attr(“name”)]=arr;
});
console.log(objVal);
});代码>
A.
B
C
D
E
B
D
E
B
D
E
我的表单中也有输入类型。因此这在case on input中不起作用types@Gaurav:请重新表述您的问题。我必须使用ajax以查询字符串的形式发送数据。我如何才能做到这一点suggest@Gaurav抱歉,如果您需要其他答案,请询问新问题bcoz此ans对新访客不有用,如果你发布新问题,一些用户会给你很好的答案…@Gaurav请查看此链接,这将帮助你在这个问题上帮助我,我必须以查询字符串形式发送数据。请帮助我查看此演示
$('form#add').find('select').each(function() {
var that = $(this);
var list = [];
that.find('option').each(function() {
var val = $(this).attr('value');
list.push(val);
});
return list;
});
var ar = [];
$("select.list_class").each(function () {
var obj = {};
obj[$(this).attr("name")] = $(this).children().map(function () {
return this.value;
}).get();
ar.push(obj);
});
console.log(ar);
var result = {};
$("select option").each(function(){
var list = $(this).parent().attr("name");
if(list in result){
result[list].push($(this).val());
}else{
result[list] = [].push($(this).val());
}
});
console.dir(result);
var list1 = [], list2 = [], list3 = [];
var $list1 = $("#list1").find("option");
$list1.each(function () {
var $option = $(this).attr("value");
list1.push($option);
});
var $list2 = $("#list2").find("option");
$list2.each(function () {
var $option = $(this).attr("value");
list2.push($option);
});
var $list3 = $("#list3").find("option");
$list3.each(function () {
var $option = $(this).attr("value");
list3.push($option);
});
console.log(list1);
console.log(list2);
console.log(list3);