2014-10-04 87 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

希望這是有幫助的。