jquery:以数组格式检索name的提交值

时间:2011-06-13 16:49:11

标签: jquery

在提交时,我需要收集一系列复选框字段的值,这些字段具有数组格式的通用名称。我尝试过这样的事情:

$('form').submit(function(e){   
  $(':input:checkbox[name=fields[]]', this).each(function(){
    console.log($(this).attr('name'));
    console.log($(this).val);
  });
});

但“[name = fields []]”并不限制我认为的方式。 我最终需要做的是确定从那个字段数组中检查了多少个复选框。我只是在找出条件时发送到控制台日志。

1 个答案:

答案 0 :(得分:4)

编辑:

$('form').submit(function(e){   
    var fields = new Array();
    $(':input:checkbox[name*=fields]', this).each(function() {
        index_a = $(this).attr('name');
        if (fields[index_a] == undefined) fields[index_a] = 0;
        if ($(this).is(':checked')) fields[index_a] += 1;
    });
    return false;
});

http://jsfiddle.net/daybreaker/7UFs6/3

这将返回一个fields数组,其中包含每个fields[whatever]的键,以及一个值,该值等于每个field[whatever]中检查了多少个复选框。

在我的jsfiddle示例中,我使用fields[opt1]fields[opt2],虽然在技术上可能根本不是一个好主意,但是它有一个带括号的键,它可以工作。如果你愿意,你可以做一些正则表达式来取出里面的opt1并将其作为密钥。