2014-10-04 89 views
0

我一直在阅读parsley.js docs,我试图编写自定义验证程序来验证日期是否大于今天的日期。parsley.js - 日期字段的自定义验证

我有条件代码编写,但我完全困惑如何应用条件错误消息。

我已经用parsley maxlength验证器完成了任务,但意识到这并不完美。

如何使用parsley编写自定义验证?

这里是我的js/JQ代码动态地将&使用最大长度删除验证:

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

所有你需要做的是注册自定义验证以全局(在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与样本

+0

感谢代码和jsFiddle。这对我有很大的帮助。我快到了。我如何将验证仅指定给特定的文本输入ID?例如: user1261774 2014-10-04 21:32:03

+0

可以通过使用需要提供选择器的“inputs”选项来完成,例如“inputs:'#date1' “(见jsFiddle) – 2014-10-06 08:17:25

1

首先,设置一个隐藏的文本框,并在其中存储今天的日期,只需在要检查的日期字段上写下代码即可。

data-parsley-dlte = "#hiddentextboxid", 
data-parsley-dlte_message = "Your custom message" 

不要忘记在你有你的dom元素的窗体上设置欧芹。

如果这不起作用检查版本parsley js

希望这是有帮助的。