检查所有选中的复选框是否具有value = right,并且所有未选中的复选框都具有value = wrong

时间:2015-01-14 16:42:45

标签: javascript jquery

我已经在这几天了,已经问了很多消息来源,但仍然无法找到如何做到这一点。 我已经在这里和那里看到了一些代码,但我还没有看到一个有效的实现。

<fieldset id="question">
  <legend>Which are fruit?</legend>
     <label><INPUT TYPE="checkbox" NAME="q1" VALUE="wrong">tomatoes<BR></label>
     <label><INPUT TYPE="checkbox" NAME="q2" VALUE="wrong">cucumber<BR></label>
     <label><INPUT TYPE="checkbox" NAME="q3" VALUE="right">apples<BR></label>
     <label><INPUT TYPE="checkbox" NAME="q4" VALUE="wrong">onion<BR></label>
     <label><INPUT TYPE="checkbox" NAME="q5" VALUE="right">bananas<BR></label>
  </fieldset>
<input type="button" id="answer">

我想我以前可能会把我的问题弄得很糟糕,并会再试一次,我真的非常绝望。

在提交时,如果所有复选框都带有值&#39; right&#39;已选中,所有复选框的值均为“错误”。没有检查,我想展示一个做得好的&#39;警报信息。

有人可以帮忙解决这个问题。

我在想它应该是这样的:

If (all checkboxes with value 'right' = checked) and (all checkboxes with value 'wrong' are unchecked) {
do something}

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用:

if($('[value=right]:checked').length==3 && $('[value=wrong]:not(:checked)').length==2)
   //show message well done.....

如果您没有带有值的复选框的计数:

 if($('[value=right]:checked').length==$('[value=right]').length && $('[value=wrong]:not(:checked)').length==$('[value=wrong]').length)
   //show message well done.....

答案 1 :(得分:2)

您可以判断是否有任何选中的复选框的值为“错误”,如下所示:

var wrongChecked = $("input:checkbox:checked[value='wrong']").length != 0;

同样,您可以选中未选中的复选框:

var rightUnchecked = $("input:checkbox[value='right']").not(":checked").length != 0;

如果这两个变量中的任何一个结束true,则复选框的状态是错误的。如果它们都是false,那就是正确的:

if (!wrongChecked && !rightUnchecked) {
  // yaay! correct answer!
}