2012-06-20 131 views
0

Possible Duplicate:
Using Javascript, how do I make sure a date range is valid?的jQuery(或JavaScript)驗證日期範圍

我可以讓用戶輸入日期的頁面上,我測試的一個正確打破了數據庫保存與以下錯誤:

SQLDATETIME溢出。必須介於1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之間。

在日期發送到服務器之前,是否有現有的函數在jQuery或JavaScript的客戶端進行驗證,以便我可以給用戶提供反饋?我寧願不必寫我自己的(可能不完整的)。

感謝

+0

也http://stackoverflow.com/q/2056406/55209 –

回答

1

您可以嘗試jQuery驗證plugin在客戶端處理這個問題。 但是不要只在客戶端進行。始終始終始終在發送到數據庫之前在服務器端執行此操作。

根據jQuery docs,代碼可以這樣簡單。

$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     date: true 
    } 
    } 
}); 

如果你想自定義日期格式,這answer值得期待

2

的JavaScript重載><比較運營日期的工作。

if (yourDate > new Date('1/1/1753 12:00:00 AM') && 
    yourDate < new Date('12/31/9999 11:59:59 PM')) { 
    // date is in your valid range 
} else { 
    // date is not in your valid range 
} 

http://jsfiddle.net/jbabey/UB9NR/

記住JavaScript驗證是性能僅並不會增加安全性;它應該始終輔以服務器端驗證。

1

使用日期選擇器插件http://jqueryui.com/demos/datepicker/#min-max 並使用日期範圍方法

http://jqueryui.com/demos/datepicker/#date-range

CODE

$(function() { 
     $("#from").datepicker({ 
      defaultDate: "+1w", 
      changeMonth: true, 
      numberOfMonths: 3, 
      onSelect: function(selectedDate) { 
       $("#to").datepicker("option", "minDate", selectedDate); 
      } 
     }); 
     $("#to").datepicker({ 
      defaultDate: "+1w", 
      changeMonth: true, 
      numberOfMonths: 3, 
      onSelect: function(selectedDate) { 
       $("#from").datepicker("option", "maxDate", selectedDate); 
      } 
     }); 
    }); 
1

限制用戶輸入錯誤的範圍需要date js庫。我覺得這個功能就是你要找的Date.validateDay。請參閱documentation