Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取表单的多个下拉列表值,并在jquery中作为查询字符串发送_Javascript_Jquery - Fatal编程技术网

Javascript 获取表单的多个下拉列表值,并在jquery中作为查询字符串发送

Javascript 获取表单的多个下拉列表值,并在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

我有一个具有多个属性的下拉列表的表单。现在单击按钮,我想在键名上创建一个值数组作为下拉列表名。但我无法做到这一点。 我必须用ajax以查询字符串的形式发送每个下拉列表的数据

HTML

<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);