使用 parsley.js 每个字段支持多个自定义错误消息
multiple custom error message support per field by using parsley.js
我正在尝试使用 parsley.js 验证一个简单的表单,我是 parsley.js 的初学者。我想使用 window.ParsleyValidator.addValidator 在一个自定义验证方法中显示多条错误消息() method.So我已经尝试过了。
我创建的简单 html 表单
<html>
<head>Custom Validation Parsley
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="js/parsley.min.js"></script>
<script src="js/my-validator-parsley.js"></script>
</head>
<body>
<form class="cmxform" id="commentForm" method="get" action="">
<fieldset>
<legend>Please provide your name, email address (won't be published) and a comment</legend>
<p>
<label for="cemail">E-Mail with custom method (required)</label>
<input id="cemail" name="checkEmail" data-parsley-checkEmail>
</p>
<p>
<input class="submit" type="submit" value="Submit">
</p>
</fieldset>
</form>
<script>
$("#commentForm").parsley();
</script>
</body>
</html>
以及包含自定义验证方法的 javascript 文件
var errorMsg = "";
window.ParsleyValidator.addValidator('checkEmail', function(value) {
console.log(value);
if (value == "") {
errorMsg = "this field must not be empty";
return false;
} else {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!regex.test(value)) {
errorMsg = "this field must be email ***";
}
return regex.test(value);
window.ParsleyValidator.addMessage('en', 'checkEmail',
errorMsg);
}
}, 32)
//.addMessage('en','checkEmail',window.ParsleyValidator.catalog)
;
但它对 me.Can 不起作用,有人可以就此以及如何完成此任务给我建议吗?
在给定的语言环境中,您只能为每个约束分配一条消息。
来自 http://parsleyjs.org/doc/annotated-source/validator.html:
addMessage: function (locale, name, message) {
if ('undefined' === typeof this.catalog[locale])
this.catalog[locale] = {};
this.catalog[locale][name.toLowerCase()] = message;
return this;
},
因此,如果您需要多条消息,请定义多个验证器。
此外,
如果你想让一个字段成为必填字段,则无需检查它是否为空;只需为其添加 required
属性(例如 <input ... required />
)
Parsley 与通用验证器(http://parsleyjs.org/doc/index.html#validators)捆绑在一起,"email" 就是其中之一;要启用它,请将属性 type="email"
添加到您的输入(例如 <input type="email" required />
)
更新:
来自 http://parsleyjs.org/doc/index.html#psly-ui-for-javascript:
window.ParsleyUI.updateError(parsleyInstance, name, message);
Manually edit an error message.
此外,您可以通过直接将其分配给 catalog
而不是使用 addMessage()
来设置验证器函数的消息(请注意验证器的名称应全部小写):
window.ParsleyValidator.addValidator('checkEmail', function(value) {
if (...)
window.ParsleyValidator.catalog.en.checkemail = 'Some error message AAA';
else
window.ParsleyValidator.catalog.en.checkemail = 'Some error message BBB';
return (...);
}, 32);
我正在尝试使用 parsley.js 验证一个简单的表单,我是 parsley.js 的初学者。我想使用 window.ParsleyValidator.addValidator 在一个自定义验证方法中显示多条错误消息() method.So我已经尝试过了。
我创建的简单 html 表单
<html>
<head>Custom Validation Parsley
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="js/parsley.min.js"></script>
<script src="js/my-validator-parsley.js"></script>
</head>
<body>
<form class="cmxform" id="commentForm" method="get" action="">
<fieldset>
<legend>Please provide your name, email address (won't be published) and a comment</legend>
<p>
<label for="cemail">E-Mail with custom method (required)</label>
<input id="cemail" name="checkEmail" data-parsley-checkEmail>
</p>
<p>
<input class="submit" type="submit" value="Submit">
</p>
</fieldset>
</form>
<script>
$("#commentForm").parsley();
</script>
</body>
</html>
以及包含自定义验证方法的 javascript 文件
var errorMsg = "";
window.ParsleyValidator.addValidator('checkEmail', function(value) {
console.log(value);
if (value == "") {
errorMsg = "this field must not be empty";
return false;
} else {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!regex.test(value)) {
errorMsg = "this field must be email ***";
}
return regex.test(value);
window.ParsleyValidator.addMessage('en', 'checkEmail',
errorMsg);
}
}, 32)
//.addMessage('en','checkEmail',window.ParsleyValidator.catalog)
;
但它对 me.Can 不起作用,有人可以就此以及如何完成此任务给我建议吗?
在给定的语言环境中,您只能为每个约束分配一条消息。
来自 http://parsleyjs.org/doc/annotated-source/validator.html:
addMessage: function (locale, name, message) {
if ('undefined' === typeof this.catalog[locale])
this.catalog[locale] = {};
this.catalog[locale][name.toLowerCase()] = message;
return this;
},
因此,如果您需要多条消息,请定义多个验证器。
此外,
如果你想让一个字段成为必填字段,则无需检查它是否为空;只需为其添加
required
属性(例如<input ... required />
)Parsley 与通用验证器(http://parsleyjs.org/doc/index.html#validators)捆绑在一起,"email" 就是其中之一;要启用它,请将属性
type="email"
添加到您的输入(例如<input type="email" required />
)
更新:
来自 http://parsleyjs.org/doc/index.html#psly-ui-for-javascript:
window.ParsleyUI.updateError(parsleyInstance, name, message);
Manually edit an error message.
此外,您可以通过直接将其分配给 catalog
而不是使用 addMessage()
来设置验证器函数的消息(请注意验证器的名称应全部小写):
window.ParsleyValidator.addValidator('checkEmail', function(value) {
if (...)
window.ParsleyValidator.catalog.en.checkemail = 'Some error message AAA';
else
window.ParsleyValidator.catalog.en.checkemail = 'Some error message BBB';
return (...);
}, 32);