2013-02-13 5 views
0

jQuery의 유효성 검사 플러그인이 작동하는 데 문제가 있습니다. jquery.js와 jquery.validate.js를 성공적으로 가져 왔습니다.jQuery 유효성 검사 플러그인을 사용할 수 없습니다.

$(document).ready(function($) { 

    $("#apply").validate({ 
     rules: { 
      firstname: "required", 
      surname: "required", 

      secret: { 
       required: true, 
       minlength: 5 
      }, 
      verify_secret: { 
       required: true, 
       minlength: 5, 
       equalTo: "#secret" 
      }, 
      email: { 
       required: true, 
       email: true 
      }, 

     }, 
     messages: { 
      firstname: "Please enter your firstname", 
      surname: "Please enter your surname", 

      secret: { 
       required: "Please provide a password", 
       minlength: "Your password must be at least 5 characters long" 
      }, 
      verify_secret: { 
       required: "Please provide a password", 
       minlength: "Your password must be at least 5 characters long", 
       equalTo: "Please enter the same password as above" 
      }, 
      email: "Please enter a valid email address", 

     } 
    }); 


}); 

을 여기 내 마크 업입니다 :

<form method="post" action="apply.php" id='apply'> 


     <input type='text' name='firstname' id='firstname' value=''/> 
     <input type='text' name='surname' id='surname' value=' '/> 

<input type='text' name='email' id='email' value='Your Email Address'/> 

     <label for='secret'>Your Chosen Password</label> 
     <input type='password' name='secret' id='secret'/> 

     <label for='verify_secret'>Verify Your Password</label> 
     <input type='password' name='verify_secret' id='verify_secret'/> 



     <input type='submit' name='submit' value='Submit'/> 
    </form> 

는 내가 부족 의존 관계 (dependencies)가 있는가 다음과 같이 내 스크립트입니다? 문제 해결에 도움이되는 오류 메시지 나 기타 문제가 발생하지 않습니다.

답변

3

As per jQuery documentation을 시도 $().ready(function() {는 "을하지 않는 것이 좋습니다"입니다. 당신은 또한 noConflict() mode 사용에 대한 귀하의 페이지, 또는 아무것도에 $ 변수를 사용하여 다른 자바 스크립트 라이브러리에 대해 아무것도 언급하지 않기 때문에

, 그냥 그것으로 불필요한 $을 통과없이 표준 document.ready 기능 를 사용합니다. 여기

$(document).ready(function() { ... }); 

나는 또한 발견 http://jsfiddle.net/9ZVab/

이/후행 쉼표의 몇 가지를 제거 ... 코드의 작동 데모입니다. 두 암호 필드에 동일한 규칙이 있음을 확인했습니다. 두 번째 필드는 equalTo 규칙을 사용하기 때문에 다른 규칙은 중복되어 제거 될 수 있습니다. 참조 : http://jsfiddle.net/tnuQa/

+0

고마워, 그건 잘 작동한다. 그리고 불필요한 $ 문제를 해결해 주셔서 감사합니다. – Sceletia

1

대신이 질문에 jquery를 사용하는 이유는 무엇입니까?

$().ready(function($) { 

$(document).ready(function() { 
+0

이것은 준비된 처리기가 플러그인 데모에서 제공된 방식입니다. 함수에 인수로 $를 전달하지 않으면 $ (...). validate()가 함수가 아니라는 오류가 발생합니다. 이 플러그인을 사용할 때 $를 전달해야 할 수도 있다는 다른 게시물을 발견했습니다. – Sceletia

+0

@Dio,'noConflict()'모드를 사용하지 않는 한 함수에'$'를 전달할 필요가 없습니다. 그 점에서 Validate 플러그인에 특별한 것은 없으므로, 읽은 내용은 거짓이거나 오해입니다. – Sparky

관련 문제