2017-03-27 12 views
-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(); 
       }); 
      } 
     } 
    }); 
+0

に変更してみてください。ここでは、この関数myvalidateを呼び出していますか? htmlの部分も提供できますか? –

+0

@Aman Rawatは、関数(e)の代わりにfalseも返します。 –

答えて

0

あなたがバインド解除を必要とするようにそれは見えません。 $(this).unbind('submit').submit();$(this).submit();

関連する問題