2017-04-27 38 views
-1

HTML:jQuery的获得所有非选中的复选框

<input type="checkbox" class="checkbox color" name="color[]" value="Gray"> 
<input type="checkbox" class="checkbox color" name="color[]" value="red"> 
<input type="checkbox" class="checkbox color" name="color[]" value="black"> 
<input type="checkbox" class="checkbox color" name="color[]" value="yellow"> 

的jQuery:

$(".color").click(function(){ 
    console.log($(".color:not(:checked)").val()); 
}) 

我的代码工作,但只显示一个元素。我该如何解决这个错误?

+4

'$(”颜色...'。点是很重要的。 – Tushar

+0

只是删除了'.VAL()'所以你可以看到在阵列控制台返回。下面是a [JSfiddle Example](https://jsfiddle.net/qxhksusL/) – Lankymart

回答

0

您可以使用下面的脚本对于这一点,Updated Fiddle

$(".color").change(function(){ 
 
\t $(".color").each(function(){ 
 
\t \t if (!$(this).prop("checked")) { 
 
\t \t \t alert($(this).val()); 
 
\t \t } 
 
\t }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" class="checkbox color" name="color[]" value="Gray"> 
 
<input type="checkbox" class="checkbox color" name="color[]" value="red"> 
 
<input type="checkbox" class="checkbox color" name="color[]" value="black"> 
 
<input type="checkbox" class="checkbox color" name="color[]" value="yellow">

+1

你确定这是OP想要的吗? – Tushar

+0

@Tushar这将起作用 –

+1

我不是说这个_won't work_。问题的标题是_jQuery得到所有未检查的复选框_。你不明白这个问题,我请求你再读一遍 – Tushar

-1
$("input[name='color[]']").each(function() { 
    if ($(this).is(":checked")) 
    {         
    } 
    else 
    { 
    } 
}); 
0

@super-user提供了一个完全可以接受的answer但你可以通过使用jQuery map()功能翻译进一步简化这个该数组然后使用join()以字符串形式输出结果。

$(".color").click(function(){ 
 
    $("p").text(jQuery.map($(".color:not(:checked)"), function(val, index) { 
 
    return $(val).val(); 
 
    }).join(",")); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" class="checkbox color" name="color[]" value="Gray"> 
 
<input type="checkbox" class="checkbox color" name="color[]" value="red"> 
 
<input type="checkbox" class="checkbox color" name="color[]" value="black"> 
 
<input type="checkbox" class="checkbox color" name="color[]" value="yellow"> 
 
<p></p>