2015-01-13 4 views
-1

JQuery 유효성 검사를 사용하여 JQuery Mobile 웹 사이트에서 양식 필드의 유효성을 검사하기 위해 노력하고 있습니다. JQuery 유효성 검사는 서버에 ajax 호출을 보내 "원격"을 사용하여 사용자 입력의 유효성을 검사합니다.JQuery 유효성 검사 - 문자로 유효성 검사

처음으로 필드의 유효성을 검사 할 때 전체 단어가 입력 될 때까지 ajax 호출이 트리거되지 않는 이상한 현상이 있습니다. 그게 내가 원하는거야. 그러나 처음으로 유효성을 검사 한 후 나중에 포커스를 받으면 문자가 입력 될 때마다 ajax 호출이 트리거됩니다.

그것에 대해 알고 싶으십니까? 그게 버그 야?

내 코드는 다음과 같이

$("#form1").validate({ 

      // Specify the validation rules 
      rules: { 
       "txt-username": { 
        required: true, 
        remote: { 
         url: "ManageAccessServlet?action=checkUsernameExist", 
         type: "get" 
        } 
       }, 
       "txt-firstname": "required", 
       "txt-lastname": "required", 
       "txt-email": { 
        required: true, 
        email: true 
       }, 
       "txt-password": { 
        required: true, 
        minlength: 6 
       } 
      }, 

      // Specify the validation error messages 
      messages: { 
       "txt-username": "Username cannot be empty or it has been occupied in the system", 
       "txt-firstname": "Please enter your first name", 
       "txt-lastname": "Please enter your last name", 
       "txt-password": { 
        required: "Please provide a password", 
        minlength: "Your password must be at least 6 characters long" 
       }, 
       "txt-email": "Please enter a valid email address" 
      }, 

      submitHandler: function(form) { 
       form.submit(); 
      } 
     }); 

HTML은 다음과 같습니다 :

<form action="SignupServlet" method="POST" id="form1"> 
      <div data-role="collapsible" id="collapPersonalDetails" data-collapsed="false"> 
       <h1>Personal Information</h1> 
       <div class="ui-field-contain"> 
        <label for="txt-username">Username</label> 
        <input type="text" name="txt-username" id="txt-username" value=""> 
       </div> 
       <div class="ui-field-contain"> 
        <label for="txt-password">Password</label> 
        <input type="password" name="txt-password" id="txt-password" value=""> 
       </div> 

...

+0

Ajax 요청을 트리거하는 데 사용하고 계신 것은 무엇입니까? keyup/keydown/form/button 제출 중입니까? –

+0

버그 인 경우 Stack Overflow가 버그를보고 할 장소가 아닙니다. 그렇지 않으면 문제를 재현하는 코드의 최소 예를 살펴볼 필요가 있습니다. – Sparky

+0

관련 HTML은 어디에 있습니까? – Sparky

답변

0

"그것에 대해 어떤 생각 그것은인가 곤충?"

아니요, 이것은 버그가 아닙니다. 이것은 플러그인이 작동하도록 설계된 방법입니다. 그것은 "게으른"검증이라고합니다.

처음으로 양식 제출 버튼을 클릭하면 이후 까지 초점 출력 또는 키 입력에 대한 유효성 검사가 수행되지 않습니다 (required). 그러나 첫 번째 "포커스 아웃"이벤트 후 이후의 데이터 입력 시도에서 다른 유효성 검사 규칙이 트리거됩니다.

"게으른"유효성 검사의 반대를 "열망하는"이라고합니다.


편집 : 자신의 대답에 의해 입증으로 영업 이익이 완전히 명확하지 않지만

, 그는 단순히 onkeyup 검증 옵션을 사용하지 않도록하고 싶었다.

+0

제출 버튼을 누르기 전에 이런 일이 발생했습니다. – alextc

0

문제가 해결되었습니다. "validate"기능에 대한 옵션으로 "onkeyup : false"를 추가해야했습니다. 이렇게하면 각 키 스트로크에서 유효성 검사 아약스 호출이 트리거되지 않습니다. 유효성 검사는 전체 단어가 입력되고 입력 상자가 포커스를 잃을 때만 발생합니다.

+0

문제가 해결 되었습니까?당신은 아무것도 해결하지 못하거나'onkeyup' 유효성 검사를 비활성화하는 방법을 묻지 않았습니다. 버그가 있는지 물었습니다. – Sparky