如何检查是否已选中复选框?

时间:2013-01-05 03:12:18

标签: javascript jquery

鉴于以下HTML内容:

<div class="a_list"><input type="checkbox"></input><p>Testing A list </p></div>
<div class="a_list"><input type="checkbox"></input><p>Testing A list </p></div>
<div class="a_list"><input type="checkbox"></input><p>Testing A list </p></div>
<div class="a_list"><input type="checkbox"></input><p>Testing A list </p></div>
<div class="a_list"><input type="checkbox"></input><p>Testing A list </p></div>

<div class="b_list"><input type="checkbox"></input><p>Testing A list </p></div>
<div class="b_list"><input type="checkbox"></input><p>Testing A list </p></div>
<div class="b_list"><input type="checkbox"></input><p>Testing A list </p></div>
<div class="b_list"><input type="checkbox"></input><p>Testing A list </p></div>
<div class="b_list"><input type="checkbox"></input><p>Testing A list </p></div>

和这个jQuery:

if($(".a_list, .b_list").is(":checked"))
{

} else
{
    alert("Please make a selection");
}

2 个答案:

答案 0 :(得分:2)

我认为您可能意味着“如何检查至少一个复选框是否已选中?”

<div class="a_list"><input type="checkbox" /><p>Testing A list </p></div>
<div class="a_list"><input type="checkbox" /><p>Testing A list </p></div>
<div class="a_list"><input type="checkbox" /><p>Testing A list </p></div>
<div class="a_list"><input type="checkbox" /><p>Testing A list </p></div>

if (!$(".a_list input:checked, .b_list input:checked").length){
     alert("Please make a selection");
}

输入没有</input>

答案 1 :(得分:1)

您的代码:

if($(".a_list, .b_list").is(":checked"))

...检查是否检查了具有类a_listb_list的任何元素,当然它们不会是因为它们都是div。要检查是否有任何此类元素具有已选中的子复选框,您可以改为:

if($(".a_list, .b_list").has(":checked").length > 0)

.has() method测试jQuery对象中的任何元素是否具有与提供的选择器匹配的后代。 (注意.has()返回另一个jQuery对象,而不是布尔值。)

如果由于某种原因你决定继续使用.is(),那么你需要先选择实际的复选框:

if($(".a_list, .b_list").find('input[type="checkbox"]').is(":checked"))
// or
if($('.a_list input[type="checkbox"], .b_list input[type="checkbox"]').is(":checked"))