2011-11-16 150 views
26

如果我想通過將它附加到DIV如​​來顯示內聯的JQUERY UI日期選擇器 - 如何訪問所選日期?我假設它不是綁定到INPUT那麼它將不會與表單一起提交。從JQUERY datepicker獲取價值

我想作爲後續,如果我需要將它綁定到一個INPUT元素,有沒有一種方法來控制datepicker相對於INPUT元素的位置?如果我希望日期選擇器出現在元素的上方或下方,而不是下方,我該怎麼做?

原諒我,如果這個答案是真的很明顯。

回答

45

如果你想得到用戶選擇它的日期,你可以這樣做:

$("#datepicker").datepicker({ 
    onSelect: function() { 
     var dateObject = $(this).datepicker('getDate'); 
    } 
}); 

我不確定你的問題的第二部分。但是,你有沒有嘗試過使用樣式表和相對定位?

+0

謝謝!我無法相信在瀏覽文檔時我錯過了「getDate」!我想我可能不得不亂搞他們的樣式表,但我總是緊張地抨擊其他人做的任何事情。 –

+0

這真的節省了我的時間,thnx的回答 – DEBAL

+1

你怎麼解析日期''Wed Nov 08 2017 18:20:28 GMT + 0100(W. Europe Standard Time)「'? – NineCattoRules

8

可以使用getDate方法:

var d = $('div#someID').datepicker('getDate'); 

這將使你在d Date對象。

彈出窗口中沒有任何options for positioning,但如果需要,您可以使用CSS或beforeShow事件做些事情。

5

您可以刪除此輸入的名稱屬性,所以它不會被引用。

要訪問該控制研究的價值:

$("div#someID").datepicker("getDate") 

和你可能在http://jqueryui.com/demos/datepicker/

+1

謝謝!我無法相信在瀏覽文檔時我錯過了「getDate」! –

4
$('div#someID').datepicker({ 
    onSelect: function(dateText, inst) { alert(dateText); } 
}); 

看看文件,你必須將其綁定到輸入元素只

+0

http://stackoverflow.com/questions/662220/how-to-change-the-pop-up-position-of-the-jquery-datepicker-control希望這可以幫助你 – run

2

你可以這樣做 - 通過驗證來確保datepicker綁定到元素。

var dt; 

if ($("div#someID").is('.hasDatepicker')) { 
    dt = $("div#someID").datepicker('getDate'); 
} 
0

要將日期選擇器放置在輸入字段旁邊,您可以使用以下代碼。

$('#datepicker').datepicker({ 
    beforeShow: function(input, inst) 
    { 
     inst.dpDiv.css({marginLeft: input.offsetWidth + 'px'}); 
    } 
}); 
0

如果您選擇的元素不是一個,你需要用這樣的方式:

$('[type="date"]').datepicker(); 
$('[type="date"]').change(function() { 
    var date = $(this).datepicker("getDate"); 
    console.log(date); 
});