2011-08-06 14 views
0

'uniqueUserName'이라는 사용자 지정 유효성 검사 규칙을 만들었습니다. 내 양식의 입력란 username_ID의 유효성을 검사하는 데 사용합니다. 문제는 트리거되지 않는다는 것입니다. Firebug에서 아무런 요청도 서버에 보내지지 않는다는 것을 알 수 있는데, 이는 규칙이 트리거 될 때 발생한다.사용자 지정 jquery 유효성 검사 규칙이 트리거되지 않았습니다.

유효성을 검사하려는 양식이 동적으로 div에로드됩니다.

내 스크립트 :

$(document).ready(function() { 
     //First. load the form and add it to the div. 
     $.get("registeraccount.php", function(data){ 
      $("#adminarea").html(data); 
         //addValMeth(); 
         attacheValidation("#registerform"); 

     }); 

    //function addValMeth(){ 
     //Add custom validator rule 
     $.validator.addMethod("uniqueUserName", function(value, element) { 

      $.get("databasescripts/validate_username.php", {username: value}, function(data2){ 

        if(data2 == "1"){ 
         return true ;     

        }else{ 
         return false; 
        } 
       }); 
     }, "Användarnamnet är inte unikt"); 
     //}; 

       $("#registerform").live("submit", function(e){ 
         //Prevent the form from submitting normally 
         e.preventDefault(); 

        $.post("registeraccount.php",$(this).serialize(),function(msg){ 
      }); 
    }); 

    function attacheValidation($form){ 
        //Define validation rules 
        $($form).validate({ 
          rules: { 
           firstname: "required",// simple rule, converted to {required:true} 
           surname: "required", 
           //phonenumber: "required", 
           address: "required", 
          // address2: "required", 
           zipcode: "required", 
           //username_ID: "return true;", 
           city: "required", 

           email: {// compound rule 
           required: true, 
           email: true 
           }, 
            username_ID: { 
            required: true, 
            uniqueUserName: true 
           } 
          }, 
          messages: { 
           firstname: "Förnamn saknas" , 
           surname: "Efternamn saknas", 
           address: "Adress saknas", 
           zipcode: "Postkod saknas", 
           city: "Ort saknas", 
           companyname: "Företagsnamn saknas", 
           email: "Korrekt emailadress saknas"        
          } 
          }); 
        }; 

    }); 

내 양식 : 당신이 볼 수 있듯이

<form id='registerform' action='registeraccount.php' method='post'> 
      Ägare av konto</br> 
      * Förnamn: <input type='text' name='firstname' /> <br/> 
      * Efternamn: <input type='text' name='surname' /> <br/> 
      * Email: <input type='text' name='email' /> <br/> 
      * Telefon: <input type='text' name='phonenumber' /> <br/> 
      Företagsinformation: </br> 
      * Adress: <input type='text' name='address' /> <br/> 
      Adress: <input type='text' name='address2' /> <br/> 
      * Postnummer: <input type='text' name='zipcode' /> <br/> 
      * Ort: <input type='text' name='city' /> <br/> 

      <br/> 
      Kontoinformation</br> 
      <div id='username_message'></div> 
      * Användarnamn: <input id='username_ID' type='text' name='username' /> 

      <br/> 
      Företagsinformation<br/> 
      * Företagsnamn (som kunden kommer se det): <input type='text' name='companyname' /> <br/> 
      Organisationsnummer: <input type='text' name='organisationnumber' /><br/> 
      <input id='submitaccountregistration' type='submit' value='Submit Comment' /> 
     </form> 

, 나는 함수를 호출, 양식이로드되었을 때 새로운 검증 방법을로드 시도 (addValMeth) . 차이 없음. 다른 동작 없이도 기능을 주석 처리했습니다.

사용자 지정 규칙이 트리거되지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까? 다른 모든 규칙이 제대로 작동하고 있습니다.

답변

0

문제는 입력 필드의 ID를 참조했기 때문입니다. 분명히 잘못된 선택입니다. 사용해야하는 "이름"속성입니다.

관련 문제