如何从 javascript 调用内置欧芹验证器?
How do I call a built-in parsley validator from javascript?
我使用的是 parsley js 版本 2.0.7。我想从自定义验证器调用内置 parsley
验证器。
例如,我希望属性 data-parsley-customtype="number"
的行为与 data-parsley-type="numeric"
.
完全相同
有没有办法调用已经定义的验证器?
听起来不是个好主意(有标准时最好使用标准),但您可以自己调用 addConstraint
。
例如(未经测试):
$('[data-parsley-customtype]').each(function() {
$(this).parsley().addConstraint('type', 'integer');
}
我终于对 parsley 验证器的源代码进行了更多分析,发现我可以使用这样的东西:
return window.ParsleyValidator.validate(value,
window.ParsleyValidator.validators.type("number"));
所以你想重命名内置的 pasley 验证器?
你为什么要那样做? (只是好奇)
您可以定义一个新的自定义验证器并重新定义相同的逻辑。
尝试这样的事情:
window.Parsley.addValidator('customValidation',
function (value) {
return true==(/^\d+$/.test(value)) // validates numbers
})
.addMessage('en', 'customValidation', 'Your custom error message');
并且不要忘记将属性添加到您的元素中:
$("#element").attr('data-parsley-customValidation',$("#element").val());
这是我的 React 示例。欧芹版本:"parsleyjs":“^2.9.1”
import Parsley from 'parsleyjs/dist/parsley.min.js';
export const addCustomValidator = (validatorName, validator) => {
if(Parsley.hasValidator(validatorName)){
Parsley.updateValidator(validatorName, validator);
}else{
Parsley.addValidator(validatorName, validator);
}
}
数据欧芹数
addCustomValidator('number', {
validateNumber: value => {
return value && typeof value === "number" ? true : false;
},
messages: {
en: "This is a number",
}
});
我使用的是 parsley js 版本 2.0.7。我想从自定义验证器调用内置 parsley
验证器。
例如,我希望属性 data-parsley-customtype="number"
的行为与 data-parsley-type="numeric"
.
有没有办法调用已经定义的验证器?
听起来不是个好主意(有标准时最好使用标准),但您可以自己调用 addConstraint
。
例如(未经测试):
$('[data-parsley-customtype]').each(function() {
$(this).parsley().addConstraint('type', 'integer');
}
我终于对 parsley 验证器的源代码进行了更多分析,发现我可以使用这样的东西:
return window.ParsleyValidator.validate(value,
window.ParsleyValidator.validators.type("number"));
所以你想重命名内置的 pasley 验证器? 你为什么要那样做? (只是好奇)
您可以定义一个新的自定义验证器并重新定义相同的逻辑。
尝试这样的事情:
window.Parsley.addValidator('customValidation',
function (value) {
return true==(/^\d+$/.test(value)) // validates numbers
})
.addMessage('en', 'customValidation', 'Your custom error message');
并且不要忘记将属性添加到您的元素中:
$("#element").attr('data-parsley-customValidation',$("#element").val());
这是我的 React 示例。欧芹版本:"parsleyjs":“^2.9.1”
import Parsley from 'parsleyjs/dist/parsley.min.js';
export const addCustomValidator = (validatorName, validator) => {
if(Parsley.hasValidator(validatorName)){
Parsley.updateValidator(validatorName, validator);
}else{
Parsley.addValidator(validatorName, validator);
}
}
数据欧芹数
addCustomValidator('number', {
validateNumber: value => {
return value && typeof value === "number" ? true : false;
},
messages: {
en: "This is a number",
}
});