我的表单有4个是非题,需要1个真选择和1个假(总共2个选择)才有效。可接受的方案如下:
□ true - □ false
☒ true - □ false
□ true - □ false
□ true - ☒ false
或者
□ true - ☒ false
□ true - □ false
□ true - □ false
☒ true - □ false
逻辑:
在上一个示例的形式中:
□ true - ☒ false
□ true - □ false
□ true - □ false
☒ true - □ false
如果在第一个问题上单击“ true”,将发生以下情况:
☒ true - □ false
□ true - □ false
□ true - □ false
□ true - □ false
取消选中同一行的另一个值(false),并且取消选中同一值的另一个选项(true),以便始终在每个事件中都满足初始条件(请参见上面的逻辑)。
HTML:
<form>
<p>1)
<input name="q1" type="checkbox" value="true">
<input name="q1" type="checkbox" value="false">
</p>
<p>2)
<input name="q2" type="checkbox" value="true">
<input name="q2" type="checkbox" value="false">
</p>
<p>3)
<input name="q3" type="checkbox" value="true">
<input name="q3" type="checkbox" value="false">
</p>
<p>4)
<input name="q4" type="checkbox" value="true">
<input name="q4" type="checkbox" value="false">
</p>
</form>
表单需要在每次单击事件时进行验证(即自动更新)。
您可以使用:
$('input:checkbox').change(function(){
if($('input:first-child:checked').length==1){
var firstcheckedelementindex=$('input:first-child').index($('input:first-child:checked'));
var secondcheckedelementindex=$('input:nth-child(2)').filter(function(){
return this.checked;
}).length;
return( secondcheckedelementindex==1 && $('input:nth-child(2)').not(':eq('+firstcheckedelementindex+')').is(':checked'))
}else{
return false;
}});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句