2013-01-05 49 views
-5

考虑下面的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"); 
} 
+0

你的代码有没有复选框。如果它确实是你的JS问是否检查包含所有类型为.a_list或.b_list的复选框的对象。如果第一个被选中,它将返回true,但它不会测试它们是否都是,并告诉你它。请详细解释一下。 – Popnoodles

+0

你有没有工作的代码呢?此外,您的HTML没有复选框。 –

+4

''无效。在跳入JS之前,请查看您的HTML技能。竖起大拇指和快乐的编码! –

回答

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>

+0

感谢您理解我的问题,我会试试看。 –

+0

'input'结尾处的'/'是不必要的。根据定义,''不需要自动关闭标签。 –

+0

其工作完美,谢谢很多Popnoodles –

1

您的代码:

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

...检查与a_list类或b_list任何元素是否被检查,这当然他们不会因为他们都是divs。要检查任何此类元素是否有被选中,则可以改为说他的孩子复选框:

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")) 
相关问题