2012-03-29 189 views
34

我想在我的jquery ui datepicker中設置一個初始值。我嘗試了幾種不同的方式,但似乎沒有顯示日期,它是空的。用jquery在datepicker中設置初始值?

var idag = new Date(); 
$("#txtFrom").datepicker("setDate", idag - 2); 
$("#txtTom").datepicker("setDate", idag); 
$("#txtFrom").datepicker("refresh"); 
$("#txtTom").datepicker("refresh"); 
+1

我不知道,如果你需要調用'refresh'方法。你能提供一個更廣泛的範圍,你如何使用它?你什麼時候試圖設定日期? – Richard 2012-03-29 08:47:51

+1

@安德里亞斯:我想我完全按照它,但沒有結果。這就是我問的原因。 – kaze 2012-03-29 08:55:55

+1

@Richard:刷新只是一種嘗試將文本排除的方式。 – kaze 2012-03-29 08:57:49

回答

61

這個簡單的example作品對我來說...

HTML

<input type="text" id="datepicker"> 

的JavaScript

var $datepicker = $('#datepicker'); 
$datepicker.datepicker(); 
$datepicker.datepicker('setDate', new Date()); 

我能夠通過簡單的尋找到createthis和閱讀的setDate的解釋:

.datepicker( 「的setDate」,日期)
設置的日期選擇當前日期。新日期可能是日期 對象或當前日期格式的字符串(例如'01/26/2009'), 從今天開始的天數(例如+7)或者一串值和期間 (' '''''''''''''''''','''''','''''',或者爲空以清除所選日期。

+4

你是對的。我的錯誤是,我認爲我可以在選擇器的初始化的同時做到這一點,即只有$(「#txtTom」)。datepicker(「setDate」,idag)就足夠了,不需要(「 #txtTom「)。datepicker()第一個。 – kaze 2012-03-29 09:10:09

+0

其實你可以在datepicker的焦點事件上做到這一點,這是我做的: $(document).on('focus',「.datepicker」,function(){ $(this).datepicker() ; $(this).datepicker('setDate',new Date($(this).val())); //設定值 }); 我這樣做是因爲我動態添加datepickers,所以它會修改任何輸入與datepicker類從實際日期選擇器的那一刻起,你選擇它 – WtFudgE 2016-04-18 08:09:18

+0

這將觸發'changeDate'事件,可能不是你想要的每一個頁面加載。 – stealthysnacks 2017-06-23 00:04:36

4

jQuery

設置爲在第一開口突出,如果該字段爲空的日期。通過Date對象指定實際日期,或者在當前的dateFormat中指定一個實際的日期,或者指定從今天開始的天數(例如+7)或者一串值和期間('y'多年,'m'多個月, 'w'表示數週,'d'表示數天,例如'+ 1m + 7d'),或者對於今天爲空。

代碼示例

初始化與指定的defaultDate選項一個datepicker。

$(".selector").datepicker({ defaultDate: +7 }); 

在init之後獲取或設置defaultDate選項。

//getter 
var defaultDate = $(".selector").datepicker("option", "defaultDate"); 
//setter 
$(".selector").datepicker("option", "defaultDate", +7); 

的日期選擇器是intialized後,你也應該能夠設定日期:

$(/*selector*/).datepicker("setDate" , date) 
1

使用setDate

.datepicker("setDate" , date) 

設置的日期選擇當前日期。新日期可以是日期對象或當前日期格式的字符串(例如'01/26/2009'),距離今天的天數(例如+7)或者一串值和句點('y'表示年,'m'爲幾個月,'w'爲幾周,'d'爲天,例如'+ 1m + 7d'),或者爲null以清除選定的日期。

+0

- ,nope ...'如果該字段爲空,請在首次打開時將日期設置爲高亮顯示。' @ http://jqueryui.com/demos/datepicker/#option-defaultDate - example http://jsfiddle.net/dittodhole/epHNZ/2/ – 2012-03-29 09:00:38

+0

我更新了我的answer.and upvoted for you – Pranav 2012-03-29 09:05:22

+0

@ jb10210它不是初始日期!這只是「首次亮相時的日期」......只要按照我的例子! – 2012-03-29 09:17:38

9

您可以在HTML中設置的值,然後初始化日期選擇器啓動/凸顯的實際日期

<input name="datefrom" type="text" class="datepicker" value="20-1-2011"> 
<input name="dateto" type="text" class="datepicker" value="01-01-2012"> 
<input name="dateto2" type="text" class="datepicker" > 


$(".datepicker").each(function() {  
    $(this).datepicker('setDate', $(this).val()); 
}); 

以上,甚至與丹麥的日期格式

http://jsfiddle.net/DDsBP/2/

+0

$(this).val()給了我空串... – 2014-02-09 14:16:58

+0

$(「」。datepicker「」)。each(function(){ var dateValue = $ (這個)。ATTR( 「」 值 「」); \t如果(!DATEVALUE = 「」, 「」){\t \t \t \t \t $(本).datepicker( 「」 的setDate 「」,DATEVALUE); \t} }); – 2015-02-04 13:52:56

1

我的作品我不完全確定我是否理解了你的問題,但似乎你正在嘗試爲輸入類型Date設置值。

如果你想爲輸入型日期」設置的值,那麼它必須被格式化爲「YYYY-MM-DD」(注:資本MM爲月,小寫毫米分鐘)。否則,它將清除該值並將日期選擇器留空。

假設你有一個名爲「DateChanger」按鈕,你要設置你的日期選擇爲「2012年12月22日」當你點擊它。

<script> 
    $(document).ready(function() { 
     $('#DateChanger').click(function() { 
      $('#dtFrom').val("2012-12-22"); 
     }); 
    }); 
</script> 
<input type="date" id="dtFrom" name="dtFrom" /> 
<button id="DateChanger">Click</button> 

請記住包含JQuery引用。

+0

用戶要求提供jQuery'datepicker'插件。 – pietrop 2017-12-10 13:33:17

2

使用此代碼它會幫助你。

<script> 
InitializeDate(); 
</script> 




<input type="text" id="txtFromDate" class="datepicker calendar-icon" placeholder="From Date" style="width: 100px; margin-right: 10px; padding: 0px 0px 0px 7px;"> 
     <input type="text" id="txtToDate" class="datepicker calendar-icon" placeholder="To Date" style="width: 100px; margin-right: 10px; padding: 0px 0px 0px 7px;"> 


function InitializeDate() { 
    var date = new Date(); 
    var dd = date.getDate();    
    var mm = date.getMonth() + 1; 
    var yyyy = date.getFullYear(); 

    var ToDate = mm + '/' + dd + '/' + yyyy; 
    var FromDate = mm + '/01/' + yyyy; 
    $('#txtToDate').datepicker('setDate', ToDate); 
    $('#txtFromDate').datepicker('setDate', FromDate); 
} 
+0

請在發佈代碼片段時添加一些直覺。 – vefthym 2014-07-17 11:05:58

-1

使用它的初始化代碼後能得到當前日期(日期選擇器格式):

$(".ui-datepicker-today").trigger("click");