2017-03-27 2 views
-1

여러 개의 체크 박스가 있는데 그 중 하나를 점검해야합니다. "플래그"제출이 true이고 preventDefault()가 작동하면 모든 것이 처음으로 잘 실행됩니다.jQuery - 기본 설정 취소 실행 취소

그러나 "플래그"가 거짓이면 "바인딩 해제"가 작동하지 않습니다.

다른 필수 입력란을 채우지 않으면 양식을 제출해서는 안됩니다. 당신이 때어이 필요한 것처럼

<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();