2011-07-10 46 views
0

我是jquery的新手,我有一个疑问。我有以下jQuery脚本来检查复选框的数量。获取在JQuery中选中的复选框的值

<script> 
function countChecked() { 
    var n = $("input:checked").length; 
    $("div").text(n + (n <= 1 ? " is" : " are") + " checked!"); 
} 
countChecked(); 
$(":checked").click(countChecked); 
</script> 

但是这个作品,如果我只有一组在整个页面复选框。不过,我在页面上有几个不同的复选框和单选按钮。我想将jQuery绑定到的复选框的名称属性为'selectArticle []'。

我对上述脚本做了哪些修改,使其仅监视这些复选框。也有可能修改上面的脚本实际获取checbox检查的值。

有人可以为我修改上述脚本请...谢谢!

回答

4

Filter by attribute [docs]。我认为你的代码实际上是不正确的,你只将事件处理程序绑定到已经选择的元素。如果你想将其绑定到这个组中的所有复选框,选中所有的人:

var $checkboxes = $("input[name='selectArticle[]']"); 

function countChecked() { 
    var n = $checkboxes.filter(":checked").length; 
    $("div").text(n + (n <= 1 ? " is" : " are") + " checked!"); 
} 

$checkboxes.change(countChecked).change(); 

缓存元素($checkboxes)比对处理程序的每一次调用为他们寻找更好的。

如果你真的想处理程序绑定只有选定的,绑定的事件处理程序是这样的:

$("input[name='selectArticle[]']:checked").change(countChecked).change(); 

这是更好地将事件处理程序change事件绑定(选择也可以改变通过键盘)。

你也看到,而不是调用countChecked,它通过调用change事件处理程序绑定后手动触发change事件。

+0

的名字我如何得到的值选中复选框? –

+0

@Sunny:你可以使用'.val()'得到值。您必须迭代所有选中的元素才能获取每个值。 –

+0

非常感谢帮助伴侣。还有一件事。我终于设法取得复选框的值。这个值代表一些id。假设我选中的复选框的值为1,那么该复选框下的所有输入文本字段都有名称,如title1,headline1,dw1 ...等....现在,我使用jQuery验证插件,我希望如果复选框被选中所有相应的元素,如'title1,标题等'字段应该验证..没有验证必要的未选中的复选框...请帮助 –

0

使用这样的事情:

$("input[name='selectArticle[]']:checked") 
0

而不是做

$("input:checked").length; 

你可以做

$("input[name='selectArticle[]']:checked").length; 

属性[名称= certainname]已知会导致一些延误你的代码。更好的是让所有的复选框,你需要一定的类,然后像做:

<script> 
function countChecked() { 
    var n = $("input.classname:checked").length; 
    $("div").text(n + (n <= 1 ? " is" : " are") + " checked!"); 
} 
countChecked(); 
$(".classname:checked").click(countChecked); 
</script> 

编辑

如果你想使用你可以做这样的事情的价值:

<script> 
function alertValues() { 
    $("input.classname:checked").each(function() { 
     alert($(this).val()); 
    } 
} 
alertValues(); 
</script> 

如果您现在调用alertValues(),它将提醒检查框的所有值。

+0

我如何获得选中复选框的值? –

+0

我编辑了我的答案,告诉你如何提醒所有的值。它使用jqueyr:.each和jquery .val()谷歌它,如果你想知道更多。 – Tim

0

$(“输入[名称=‘复选框名’]:勾选”)。长度

其中复选框名:是复选框列表