在jQuery中获取所选复选框的值

时间:2013-02-20 17:10:33

标签: javascript jquery

在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">

任何帮助将不胜感激!

编辑:按评论更改,但仍然已损坏。

4 个答案:

答案 0 :(得分:0)

你的JS:

name=first

您的HTML:

name="first[]"

这些不匹配。

添加方括号。您还需要引用它们,因为它们不是字母数字。

$('input:checkbox[name="first[]"]:checked')

答案 1 :(得分:0)

你使用了错误的选择器,使用:

$('input:checkbox[name="first[]"]:checked')

live demo

答案 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);
  });
});

Working Demo