2011-08-06 10 views
0

カスタム検証ルール(uniqueUserName)を作成しました。私が抱えている問題は、カスタム検証メソッドからtrueを返すときでも、エラーメッセージが常にカスタムルールに対して提示されるということです。JQueryカスタムvaldiation、trueの場合でもエラーメッセージが表示されます

私が検証しようとしているフォームは動的に読み込まれ、divに追加されます。

ここでは、メソッドを追加し、検証ルールを定義します。 addValMethodは、ページがロードされた後に呼び出されますがattacheValidation前にされています

function addValMeth(){ 
       $.validator.addMethod("uniqueUserName", function(value, element) { 

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

          alert("Validate-> " + data2); 
          if(data2 == "1"){ 
           alert("Validate 2"); 
           return true;     

          }else if(data2 == "0"){ 
           alert("Validate 3"); 
           return false; 

          } 
         }); 
       }); 
    }; 

function attacheValidation($form){ 
      $($form).validate({ 
        rules: { 
         firstname: "required",// simple rule, converted to {required:true} 
         surname: "required", 
         address: "required", 
         zipcode: "required", 
         city: "required", 
         email: { 
          required: true, 
          email: true 
         }, 
         username: { 
          uniqueUserName: true, 
          required: 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", 
           username: { 
            uniqueUserName: "Användarnamnet är upptaget", 
            required: "Användarnamn saknas" 

          } 
          } 
          }); 
        }; 

アラートは、カスタムバリデータ内のロジックは、それが必要として働いて証明しています。他のすべての検証ルールは適切に機能します。

関連があるかどうかわかりませんが、真の結果が返されるたびに、カスタム検証メソッドが2回要求されます。 falseの場合、メソッドへの要求は1回だけ行われます。

これはユーザー名フィールドです。私はカスタム検証メソッドを適用したいと思います。

答えて

0

"true"を返し、 "false"を返します。ブール値ではない文字列が必要です。