jQuery 验证器功能覆盖问题

jQuery Validator functionality Overriding Issue

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

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;
        }
    }

现在,'required' 密码字段的第一次检查工作正常,但第二次检查无效。如果检查了我的 console.log(element.value.length) 并且每次值为 changed/altered 时它都会在密码字段中给出值的长度,但取决于函数 passwordLengthCheck 中的条件它永远不会 shows/displays 错误。请帮忙!!

要检查字段长度,只需将 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;
}