parsley.js - 日期字段的自定义验证

时间:2014-10-04 05:43:04

标签: javascript jquery validation parsley.js

我一直在阅读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');
}

任何有关实施自定义验证的帮助都将受到赞赏。

2 个答案:

答案 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