-1
複数のチェックボックスがあり、そのうちの1つをチェックする必要がありました。 "フラグ"の送信がtrueで、preventDefault()が機能していれば、すべてが正常に動作しています。jQuery - デフォルトを防止する元に戻す
"フラグ"がfalseの場合、 "unbind"は機能しません。
その他の必須フィールドが入力されていない場合は、フォームを提出しないでください。
<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(); }); } } });
に変更してみてください。ここでは、この関数myvalidateを呼び出していますか? htmlの部分も提供できますか? –
@Aman Rawatは、関数(e)の代わりにfalseも返します。 –