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;
}
我正在尝试覆盖 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;
}