![](/img/trans.png)
[英]End-date greater than start-date validation javascript not working properly
[英]jQuery-Validation-Engine validation between start-date and end-date
我使用jQuery Validation Engine進行表單驗證,這里是demo的鏈接:
https://github.com/posabsolute/jQuery-Validation-Engine
我有兩個文本框,一個用於開始日期,第二個用於結束日期。 我想驗證start-date
不能大於end-date
和end-date
必須不小於start-date
。
如果有任何驗證,請告訴我。
將值轉換為Date
對象。 然后你可以用它來比較,例如。 轉換為Unix時間戳或其他東西......
有關Date
更多信息,請參閱此處: https : //developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date
編輯 :我將包含更多關於我的意思的信息....在jQuery Validation Engine頁面的Validators部分下,查找描述funcCall [methodName]的部分 。
funcCall [methodName] - 使用第三方函數調用驗證字段。 如果發生驗證錯誤,該函數必須返回將在錯誤提示中自動顯示的錯誤消息。
因此,您可以將函數處理程序附加到該字段,該函數將獲取日期,然后比較它們。
<input value="" class="validate[required,funcCall[checkDates]]" type="text" id="startdate" name="startdate" />
<input value="" class="validate[required,funcCall[checkDates]]" type="text" id="enddate" name="enddate" />
在頁面的某個地方,您有JavaScrip功能:
var checkDates = function(field, rules, i, options) {
// Do your date comparisons here between startdate and enddate values
};
編輯#2 :
還有:
過去[現在,日期或其他元素的名稱] - 檢查元素的值(隱含地是日期)是否早於給定日期。 當“NOW”用作參數時,日期將在瀏覽器中計算。 當使用“#field name”時('#'是可選的),它會將元素的值與同一表單中的另一個元素的值進行比較。 請注意,這可能與服務器日期不同。 日期使用ISO格式YYYY-MM-DD
和
future [NOW,date或other element's name] - 檢查元素的值(隱式日期)是否大於給定日期。 當“NOW”用作參數時,日期將在瀏覽器中計算。 當使用“#field name”時('#'是可選的),它會將元素的值與同一表單中的另一個元素的值進行比較。 請注意,這可能與服務器日期不同。 日期使用ISO格式YYYY-MM-DD
如果這適合你的喜好,這里是標記:
<input value="" class="validate[required,past[#enddate]]" type="text" id="startdate" name="startdate" />
<input value="" class="validate[required,future[#startdate]]" type="text" id="enddate" name="enddate" />
嘗試這個:
<input class="validate[dateRange[group]]" type="text" id="date1">
<input class="validate[dateRange[group]]" type="text" id="date2">
在Jquery UI中使用日期范圍。請參閱http://jqueryui.com/datepicker/#date-range
即使為時已晚,我也有一個簡單的答案,可能會對其他人有所幫助。 你可以在這里獲得關於jQuery驗證引擎的注釋,這將是一個更好的解決方案,
https://github.com/posabsolute/jQuery-Validation-Engine
您可以在HTML源代碼中使用future
, now
validators來啟用驗證。
例如,
如果您有twio文本框,其id
屬性為start_date
和end_date
,則可以使用驗證器,如下所示:
<input value="" class="validate[required,custom[date]]" type="text" id="start_date" name="start_date" />
<input value="" class="validate[required,custom[date],future["#start_date"],now["#start_date"]]" type="text" id="end_date" name="end_date" />
然后在基於區域設置的驗證引擎文件中,請將所需的消息放在future
驗證器上,以便在驗證時顯示驗證用量。
希望這對你有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.