2013-05-26 4 views
2

PHP 프로세스 전에 간단한 폼의 유효성을 검사하려고합니다. 모든 입력을 비워두면 양식이 중지되지만 동일한 페이지에 머물러 모든 입력을 채우면 양식이 제출되지 않습니다.form onclick validation JQUERY

나는 틀린 것을 추측한다; 첫 번째 유효성 검사를 계속합니다.

HTML

<input onblur="validName();" type="text" name="name" id="name"> 
<textarea id="message" name="message" onblur="validMess();" rows="5"></textarea> 

<input type="submit" name="submit" onclick="validSubmit();" value="send"> 

JQUERY

function validSubmit() { 
var message = $("#message").val(); 
var name = $("#name").val(); 

    if(name == ''){ 
     $("#valid-name").removeClass('hide'); // if empty = show error message 
     $("#form").submit(function(e){ 
      return false; 
     }); 
    } 
    else { 
     $("#valid-name").addClass('hide'); // all good = hide error message 
     $("#form").submit(function(e){ 
      return true; 
     }); 
    } 


    if(message == ''){ 
     $("#valid-mess").removeClass('hide'); // if empty = show error message 
     $("#form").submit(function(e){ 
      return false; 
     }); 
    } 
    else { 
     $("#valid-mess").addClass('hide'); // all good = hide error message 
     $("#form").submit(function(e){ 
      return true; 
     }); 
    } 

} 

아이디 : 유효한 이름과 유효-엉망 나는 초보자 : 그래서 여기

가 발췌 한 것입니다 해요 표시하도록 설정된 두 가지 오류 메시지는 다음과 같습니다. none; 기본적으로.

나는 조금 잃어 버렸습니다. 대답은 JS 나 Jquery에있을 수 있습니다. 괜찮습니다.

감사합니다.

답변

2

는 확인되지 때 단지 false을 돌아가 submit 콜백에서 submit를 호출하지 마십시오 : Barmar에서 언급 한 바와 같이

function validSubmit() { 
    var message = $("#message").val(); 
    var name = $("#name").val(); 
    $("#valid-name,#valid-mess").addClass('hide'); 
    var ok = true; 
    if (name == ''){ 
     $("#valid-name").removeClass('hide'); 
     ok = false; 
    } 
    if (message == ''){ 
     $("#valid-mess").removeClass('hide'); 
     ok = false; 
    } 
    return ok; 
} 

또한,이 검증을 결합하는 가장 좋은 방법은 아닙니다. click 이벤트에 바인딩하는 대신

$('#id_of_the_form').submit(validSubmit); 
+1

폼의 onsubmit 핸들러에서 validSubmit()을 호출해야합니다. – Barmar

+0

네, 완벽하게 작동합니다. 대단히 감사합니다. 나는 맥주를 빚지고있다;) – bonhomme