2012-06-11 3 views
0

내 양식의 모든 필수 필드가 채워지는 것을 제어하는 ​​jquery 기능이있어 필수 필드 중 하나가 비어 있으면 제출을 취소합니다.jquery 취소 제출 후 양식 제출을 허용

양식 제출 취소는 문제가 있습니다. 문제는 제출 실패 후 양식을 제출할 때 양식 제출이 취소되고 모든 양식이 올바르게 채워져 있기 때문에 제출을 허용해야한다는 것입니다. 코드는

입니다.

-Cancel은 모든 양식 필드가 채워 졌는지 여부를 나타내는 부울입니다.

if (cancel) 
    { 
     $('#form_login').submit(function() 
     { 
      return false; 
     }); 
    } 
    else 
    { 

     $('#form_login').submit(function() 
     { 
      return true; 
     }); 
    }; 

내가 뭘 잘못하고 있니?

감사합니다.

답변

1

제출 방법에서 유효성 검사 코드를 호출하는 것이 좋습니다. 예를 들어, 검증을 실시해 true 또는 false를 돌려주는 메소드. 이 값을 제출 메소드 리턴 값으로 리턴 할 수 있습니다. 예를 들어

:

$('#form_login').submit(function() 
{ 
    return isMyFormValid();  
}); 

function isMyFormValid(){ 
    //return true or false depending on some conditions. 
} 
+0

잘 작동, 감사합니다! –

+0

@AlbertPrats : 괜찮습니다. –

0
if(cancel) { 
    $('#form_login').submit(); 
} else { 
    return false; 
} 
0

문제는 당신이 폼의 제출 이벤트를 여러 번에 함수를 연결하는 것입니다. 처음으로 유효성 검사가 실패하면 return false; 메서드가 첨부되고 나중에 (확인이 성공했을 때) 다른 함수를 첨부하더라도 양식이 전송 될 때마다이 함수가 호출됩니다.

싶은 것은 :

$('#form_login').off('submit'); 
:

이미 제출 이벤트에 함수를 부착하고 재정의하려는 경우
$('#form_login').submit(function() { 
    //define the value of 'cancel' here 
    return cancel; 
} 

는 먼저 이미 연결 기능을 제거해야합니다

을 입력 한 다음 새 기능을 첨부하십시오.

0

api이 시사하는 어떤 시도에 대해 어떻게 :

$('#form_login').submit(function() 
{ 
     if (cancel) {return false;} 
     return true;  
});