Parsley.js在v2.x中进行日期验证

时间:2014-04-09 17:37:31

标签: javascript parsley.js

是否可以像以前的版本一样在Parsley v2.X中使用日期验证?

示例(v1.x):parsley-onorafterdate =" #currentDate"

我无法在文档中找到有关此问题的信息。

1 个答案:

答案 0 :(得分:7)

我相信对于所记录的核心验证器之外的任何验证器,您需要复制预先构建的验证器或自己创建验证器。

要添加其他验证器,您只需要在包含parsley之前将验证器添加到窗口配置变量中。

他们在这里有一个例子:http://parsleyjs.org/doc/examples/customvalidator.html

如果您正在使用requirejs,我相信您可以创建一个新模块,然后只需要在requirejs define方法中使用其他验证器,尽管我还没有测试过该理论!

举个例子:

首先我定义我的自定义parsley dom属性

  <input name="date" type="text" data-parsley-trigger="change" data-parsley-date required/>

在加载欧芹之前的脚本中

 window.ParsleyConfig = window.ParsleyConfig || {};

 window.ParsleyConfig.validators = window.ParsleyConfig.validators || {};

 window.ParsleyConfig.validators.date = {
        fn: function (value) {
            return /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/.test(value);
        },
        priority: 256
    };

ParsleyConfig.validators.date匹配我的自定义dom属性(日期),函数根据正则表达式返回true或false。

理论上,如果你想要使用旧的欧芹验证方法的逻辑,你可以将它粘贴到自定义验证器中,但希望它看起来很容易构建你自己!