在jQuery中点击提交按钮后,我试图获取一系列选中的复选框,我似乎无法显示任何内容。代码如下:
jQuery的:
$(".btn").live("click",function () {
var ffirst = $('input:checkbox[name="first[]"]:checked').map(function () {
return this.value;
}).get();
});
$.each(ffirst, function(index, value) {
alert(index + ': ' + value);
});
以下HTML:
<input type="checkbox" value="1" checked="checked" name="first[]">
<input type="checkbox" value="2" checked="checked" name="first[]">
<input type="button" class="btn" value="Go">
任何帮助将不胜感激!
编辑:按评论更改,但仍然已损坏。
答案 0 :(得分:0)
你的JS:
name=first
您的HTML:
name="first[]"
这些不匹配。
添加方括号。您还需要引用它们,因为它们不是字母数字。
$('input:checkbox[name="first[]"]:checked')
答案 1 :(得分:0)
答案 2 :(得分:0)
尝试:
$(".btn").on("click",function () {
$('input:checkbox[name="first[]"]:checked').each(function(index) {
alert(index + ': ' + this);
console.log(this);
console.log($(this));
});
});
如果确实需要,只需使用(.live)
答案 3 :(得分:0)
您需要在单击处理程序之前声明ffirst数组,因为它超出了范围。每个循环都必须在click处理程序中进行,因为一旦填充了数组,它就需要执行。
不是最优化的代码,但这是一个工作示例:
var ffirst = [];
$(".btn").live("click",function () {
ffirst = $('input[name="first[]"]:checked').map(function () {
return $(this).val();
});
$.each(ffirst, function(index, value) {
alert(index + ': ' + value);
});
});