我一直在阅读parsley.js docs,我尝试编写自定义验证程序来验证日期是否大于今天的日期。
我已经编写了条件代码,但我对如何应用条件错误消息感到困惑。
我已经使用parsley maxlength验证器完成了任务,但意识到这不是完美的。
如何使用欧芹编写自定义验证?
这是我的js / jq代码,动态添加&使用maxlength删除验证:
if(formattedStartDate > todaysDate) {
$('#id_voluntary_start_date').attr('data-parsley-maxlength', '1');
$('#id_voluntary_start_date').attr('data-parsley-maxlength-message', '{% trans "Commencement Date must not be greater than today." %}');
$('#id_voluntary_start_date').parsley();
} else {
$('#id_voluntary_start_date').attr('data-parsley-maxlength', '50');
}
任何有关实施自定义验证的帮助都将受到赞赏。
答案 0 :(得分:1)
首先设置一个隐藏的文本框并将今天的日期存储在其中,然后在下面的代码中写下要检查的日期字段。
data-parsley-dlte = "#hiddentextboxid",
data-parsley-dlte_message = "Your custom message"
不要忘记在你拥有dom元素的表单上设置parsley。
如果这不起作用,请检查parsley js的版本。
希望这有用。
答案 1 :(得分:0)
您需要做的就是全局(在window.ParsleyConfig中)或您的特定表单注册您的自定义验证器,如下所示:
myForm.parsley({
validators: {
custom: function (value) {
var now = new Date();
var date = new Date(value);
return date < now;
}
},
messages: {
custom: 'Commencement Date must not be greater than today'
}
});
以下是带有示例
的jsFiddle