带有动态错误消息的jquery验证添加方法[重复]
Posted
技术标签:
【中文标题】带有动态错误消息的jquery验证添加方法[重复]【英文标题】:jquery validation addmethod with dynamic error message [duplicate] 【发布时间】:2021-11-20 07:52:22 【问题描述】:如果输入,我正在使用 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();
有没有办法生成这样的自定义错误消息?
【问题讨论】:
【参考方案1】:您可以如下定义自定义错误消息:
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验证添加方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章