我有多个复选框,其中一个必须进行检查。 点击提交"标记"第一次一切正常。是的,并且preventDefault()正常工作。
但是"解开"如果" flag"是假的。
如果未填写其他必填字段,也不应提交表格。
<form action="submit/submitPref.php" method="post" onSubmit="return myvalidate()">
<div class="section mt">
<p class="my_comp">My Compensation Package can be</p>
<div class="clearfix"> </div>
</div>
<div class="clearfix"> </div>
<div class="section pre_btm compn">
<div class="col-xs-6 pr-none half pl0 mrgrht">
<p>Salary Only per Year</p>
<input name="salOnlyPY" type="checkbox" class="chk txtrht" value="1">
</div>
<div class="col-xs-6 pr-none half pl0 mrgrht">
<p>Salary Only per Hour</p>
<input name="salOnlyPH" type="checkbox" class="chk txtrht" value="1">
</div>
<div class="col-xs-6 pr-none half pl0 mrgrht">
<p>Salary with Bonus</p>
<input name="salWithBonus" type="checkbox" class="chk txtrht" value="1" />
</div>
<div class="col-xs-6 pr-none half pl0 mrgrht">
<p>Commission Only</p>
<input name="commOnly" type="checkbox" class="chk txtrht" value="1">
</div>
<div class="col-xs-6 pr-none half pl0 mrgrht">
<p>Salary & Commission</p>
<input name="salNcomm" type="checkbox" class="chk txtrht" value="1">
</div>
<div class="clearfix"> </div>
</div>
<!--THE FORM ALSO HAS OTHER MANDATORY FIELDS-->
</form>
$(document).ready(function(){ function myvalidate() { flag=true; $('.txtrht:checked').each(function(){ flag=false; }); if(flag){ $('.my_comp').addClass('required'); $("form").submit(function(e){ e.preventDefault(); }); } else { if($('.my_comp').hasClass('required')) { $('.my_comp').removeClass('required'); } $("form").submit(function(e){ e.preventDefault(); $(this).unbind('submit').submit(); }); } } });
答案 0 :(得分:0)
看起来你不需要解开。尝试将$(this).unbind('submit').submit();
更改为$(this).submit();