JQuery自定义验证,即使是真的也会显示错误消息

时间:2011-08-06 11:58:16

标签: javascript jquery html dom validation

我创建了一个自定义验证规则(uniqueUserName)。我遇到的问题是,即使从自定义验证方法返回true,也会为自定义规则提供错误消息。

我试图验证的表单是动态加载并添加到div。

这是我添加方法并定义验证规则的地方。在加载页面之后但在attacheValidation之前调用addValMethod:

 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"

                             }
                            } 
                          }); 
                    };

警报证明自定义验证器中的逻辑可以正常工作。所有其他验证规则都正常工作。

我不知道它是否相关,但每次返回true结果时,都会请求两次自定义验证方法。如果为false,则只对方法发出一次请求。

这是我想要应用自定义验证方法的用户名字段。

1 个答案:

答案 0 :(得分:0)

一个人必须返回“true”并返回“false”。它期望字符串不是布尔值。