jQuery Validator功能覆盖问题

时间:2015-01-21 08:17:17

标签: javascript jquery jquery-validate

我试图覆盖' required'的功能。和' minlength'验证器由jQuery Validator插件提供。以下是我的代码:

jQuery(".form-cls").validate({
             errorElement: "span",
             errorClass: "error-msg",
        rules: {
            email:{
                required:true,
                email:true,
                alreadyExistEmail: true
            },
            user_email:{
                required:true,
                email:true
            },
            password:{
                required: function (element) {
                                    return checkIfPasswordIsRequired();
                                },
                                minlength: function (element) {
                                  return passwordLengthCheck(element);  
                                }
                    }
        }
    });

function checkIfPasswordIsRequired()
    {
        if(jQuery("#facebook_id").length > 0 || jQuery("#linkedin_id").length > 0 || jQuery("#xing_id").length > 0) {
            if(jQuery("#facebook_id").val() != "" || jQuery("#linkedin_id").val() != "" || jQuery("#xing_id").val() != "") {
                return false;
            }
        }
        return true;
    }





function passwordLengthCheck(element)
    {
        if(element.value.length < 6)
        {
          return false;
        }
        else
        {
          return true;
        }
    }

现在,第一次检查密码字段工作正常,需要&#39;但第二次检查无效。如果已经检查了我的console.log(element.value.length),并且每次更改/更改值时它都会在password字段中给出值的长度,但是根据函数passwordLengthCheck中的条件,它永远不会显示/显示错误。请帮助!!

1 个答案:

答案 0 :(得分:1)

要检查字段长度,只需将minlength属性添加到<input>标记,例如

<input id="pw" name="pw" minlength="6" type="password">

要添加一些自定义验证,请使用addMethod()

jQuery.validator.addMethod("func", function(value, element) {
  return this.optional(element) || check expression here;
}