jquery 使用动态错误消息验证添加方法
jquery validation addmethod with dynamic error message
我正在使用 jquery.validation 来验证输入的出生日期。我正在使用 Add 方法,但想根据输入的值有什么问题来自定义错误消息。我正在使用 moment.js 进行日期验证。
所以第一次检查应该检查它是否有效。然后我想检查这个人是否小于 1 或大于 110,如果不是则显示适当的错误消息。
我试过设置一个全局变量,但是因为消息是在构造函数中设置的,所以这是无效的 - 但我把它留在这里以展示我的尝试。
我的代码如下
var err = 'error date'; /* using this method does not work */
jQuery.validator.addMethod("validDOB", function(value, element) {
if (value != "") {
try {
if (!moment(value,"DD-MM-YYYY",true).isValid()) {
throw "Please enter a valid date (dd-mm-yyyy)!";
}
var years = moment().diff(moment(value, "DD-MM-YYYY"), 'years');
if (years < 1) {
throw "You seem a little young";
}
if (years > 110) {
throw "You seem a little old";
}
}
catch (e) {
err = e;
return false;
}
}
return true;
}, err);
function setupValidation()
{
registerValidator = $("#UserReg").validate({
rules: {
txtRegUserDOB: {
validDOB: true
}
}
});
}
setupValidation();
有没有办法生成这样的自定义错误消息?
您可以如下定义自定义错误消息:
jQuery.validator.addMethod("validDOB", function(value, element) {
if (value != "") {
if (!moment(value,"DD-MM-YYYY",true).isValid()) {
return false;
}
var years = moment().diff(moment(value, "DD-MM-YYYY"), 'years');
if (years < 1) {
return false;
}
if (years > 110) {
return false;
}
}
return true;
}, function(error, element){
var value = $(element).val();
if (!moment(value,"DD-MM-YYYY",true).isValid()) {
return "Please enter a valid date (dd-mm-yyyy)!";
}
var years = moment().diff(moment(value, "DD-MM-YYYY"), 'years');
if (years < 1) {
return "You seem a little young";
}
if (years > 110) {
return "You seem a little old";
}
});
function setupValidation()
{
registerValidator = $("#UserReg").validate({
rules: {
txtRegUserDOB: {
validDOB: true
}
}
});
}
setupValidation();
我正在使用 jquery.validation 来验证输入的出生日期。我正在使用 Add 方法,但想根据输入的值有什么问题来自定义错误消息。我正在使用 moment.js 进行日期验证。
所以第一次检查应该检查它是否有效。然后我想检查这个人是否小于 1 或大于 110,如果不是则显示适当的错误消息。
我试过设置一个全局变量,但是因为消息是在构造函数中设置的,所以这是无效的 - 但我把它留在这里以展示我的尝试。
我的代码如下
var err = 'error date'; /* using this method does not work */
jQuery.validator.addMethod("validDOB", function(value, element) {
if (value != "") {
try {
if (!moment(value,"DD-MM-YYYY",true).isValid()) {
throw "Please enter a valid date (dd-mm-yyyy)!";
}
var years = moment().diff(moment(value, "DD-MM-YYYY"), 'years');
if (years < 1) {
throw "You seem a little young";
}
if (years > 110) {
throw "You seem a little old";
}
}
catch (e) {
err = e;
return false;
}
}
return true;
}, err);
function setupValidation()
{
registerValidator = $("#UserReg").validate({
rules: {
txtRegUserDOB: {
validDOB: true
}
}
});
}
setupValidation();
有没有办法生成这样的自定义错误消息?
您可以如下定义自定义错误消息:
jQuery.validator.addMethod("validDOB", function(value, element) {
if (value != "") {
if (!moment(value,"DD-MM-YYYY",true).isValid()) {
return false;
}
var years = moment().diff(moment(value, "DD-MM-YYYY"), 'years');
if (years < 1) {
return false;
}
if (years > 110) {
return false;
}
}
return true;
}, function(error, element){
var value = $(element).val();
if (!moment(value,"DD-MM-YYYY",true).isValid()) {
return "Please enter a valid date (dd-mm-yyyy)!";
}
var years = moment().diff(moment(value, "DD-MM-YYYY"), 'years');
if (years < 1) {
return "You seem a little young";
}
if (years > 110) {
return "You seem a little old";
}
});
function setupValidation()
{
registerValidator = $("#UserReg").validate({
rules: {
txtRegUserDOB: {
validDOB: true
}
}
});
}
setupValidation();