-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");
}
4

2 回答 2

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>

于 2013-01-05T03:19:31.233 回答
1

你的代码:

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

...检查是否有任何带有类a_list或的元素b_list被选中,当然它们不会被选中,因为它们都是 div。要检查是否有任何此类元素具有选中的子复选框,您可以说:

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

.has()方法测试调用它的 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"))
于 2013-01-05T03:50:54.067 回答