提交时,我需要收集一系列具有数组格式的通用名称的复选框字段的值。我尝试做类似的事情:
$('form').submit(function(e){
$(':input:checkbox[name=fields[]]', this).each(function(){
console.log($(this).attr('name'));
console.log($(this).val);
});
});
但是“[name=fields[]]”并没有限制我认为应该的方式。 我最终需要做的是确定从该字段数组中检查了多少个复选框。我只是在弄清楚条件时发送到控制台日志。
最佳答案
编辑:
$('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
并将其作为 key 。
关于jquery:以数组格式检索提交的名称值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6333535/