2013-05-20 27 views
5

我有一個設置爲在焦點上顯示jQuery UI日期選擇器的文本字段(在窗體中)。防止jQuery UI datepicker在超出範圍時更改文本字段的值

使用PHP(在更新屏幕中)使用基於此特定記錄的上一個最終用戶輸入的日期字符串填充此文本字段的值(當頁面加載時)。

我的問題是,我使用minDate和maxDate選項設置我的datepicker,這些限制篡改顯示在我的文本字段中的原始值。

如果文本字段字符串小於最小值,則文本字段設置爲minDate的值。

即使日曆範圍超出日曆範圍(minDate或maxDate值),我也需要原始值保持不變,除非用戶從日曆中完成更改。

實施例:

minDate: 01-04-2013 (dd-mm-yy) 
maxDate: 30-04-2013 (dd-mm-yy) 
Original text field value: 16-03-2013 (dd-mm-yy) 
Displayed text field value: 01-04-2013 (dd-mm-yy) 

的想法是,所述的minDate和的maxDate選項限制最終用戶輸入/從當前日期某個定義的週期內修改數據。

我使用的是jQuery UI Datepicker 1.8.16和jQuery JavaScript庫v1.6.2。瀏覽器:互聯網 資源管理器  7及更高版本,Firefox

+2

有你想通了這一點,在所有:從http://jsfiddle.net/DEfQL/1/

靈感嗎?我有同樣的問題。 – phazei

+0

不幸的是,沒有... – yhammad

+0

我最好的選擇(根據我讀的一些帖子),有些人將函數綁定到'beforeShowDay'選項來啓用某些日期(http://articles.tutorboy.com/2010/09/03/jquery的-UI-日期選擇器 - 禁用指定-日期/)。如果日曆中的日期與原始日期匹配,或者位於日期範圍之間,則返回true,否則返回false。從來沒有爲我工作過。 – yhammad

回答

1

下面介紹一種方法。

$(document).ready(function() 
{ 
    var DateLimits = {min:null, max:null}; 

    DateLimits.min = new Date(Date.parse("01-01-2014")); 
    DateLimits.max = new Date(Date.parse("12-31-2014")); 

    $("#datepicker").datepicker(
    { 
     dateFormat: "mm-dd-yy", 
     minDate: DateLimits.min, 
     maxDate: DateLimits.max 
    }); 
}); 

這裏是小提琴:How can I set the minDate/maxDate for jQueryUI Datepicker using a string?