2015-01-14 30 views
1

我现在已经在这几天了,询问了很多来源,但仍无法找到如何执行此操作。 我在这里和那里看到了一些代码,但我还没有看到有效的实现。检查是否所有选中的复选框都有值=正确,并且所有未选中的复选框都有值=错误

<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"> 

我想我可能已经很差地构建了我的问题,并且会再次尝试,我真的很绝望。

提交时,如果所有复选框的值为'right'被选中,并且所有值为'wrong'的复选框未选中,我想显示一个'已完成'警报消息。

有人可以帮忙用这个javascript。

我想它应该是这样的:

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

谢谢!

回答

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..... 
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! 
}