在提交时,我需要收集一系列复选框字段的值,这些字段具有数组格式的通用名称。我尝试过这样的事情:
$('form').submit(function(e){
$(':input:checkbox[name=fields[]]', this).each(function(){
console.log($(this).attr('name'));
console.log($(this).val);
});
});
但“[name = fields []]”并不限制我认为的方式。 我最终需要做的是确定从那个字段数组中检查了多少个复选框。我只是在找出条件时发送到控制台日志。
答案 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
并将其作为密钥。