2016-03-06 145 views
3

當我使用setDatedateFormat : 'yy-mm'時,jQuery UI DatePicker顯示今天的日期,而不是setDate中指定的日期。

實施例:http://jsfiddle.net/DBpJe/7981/(從https://stackoverflow.com/a/2209104/5568549編輯)


但隨着dateFormat : 'yy-mm-dd'它示出了在setDate指定的日期。 例子:http://jsfiddle.net/DBpJe/7982/

如何讓jQuery UI的DatePicker的顯示setDatedateFormat : 'yy-mm'指定的日期?jQuery UI中的setDate DatePicker

+0

$( '日期選擇器。 ')日期選擇器(' 的setDate',新的日期());。 – WRDev

+0

@WRDev這是什麼意思?我希望UI DatePicker顯示setDate中指定的日期。不是今天的日期。 – Curious

+0

@Curious,如果你設置格式沒有日期,哪個日期將在日曆中選擇?在這種情況下,文本框顯示值,但日期選擇器對象設置當前日期的默認值。因爲datepicker模式是從該對象填充的。 –

回答

0

實測值從jQuery UI DatePicker to show month year only
工作實施例中的溶液爲dateFormat : 'yy-mm'http://jsfiddle.net/DBpJe/8057/

beforeShow : function(input, inst) { 

if ((datestr = $(this).val()).length > 0) { 
    year = datestr.substring(0, 4); 
    month = datestr.substring(datestr.length-2, datestr.length); 

    $(this).datepicker('option', 'defaultDate', new Date(year, month-1, 1)); 
    $(this).datepicker('setDate', new Date(year, month-1, 1)); 

} 
} 
0

研究發現,正是解決了這個文章:http://www.jquerybyexample.net/2012/06/show-only-month-and-year-in-jquery-ui.html

工作實例:http://jsfiddle.net/Twisty/xwnoafxd/

基本上你剛加入defaultDate設置。其中一個facepalm的東西。

$(function() { 
    var myDate = new Date(2000, 6, 1); 
    $('.date-picker').datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    showButtonPanel: true, 
    dateFormat: 'yy-mm', 
    defaultDate: myDate, 
    onClose: function(dateText, inst) { 
     function isDonePressed() { 
     return ($('#ui-datepicker-div').html().indexOf('ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all ui-state-hover') > -1); 
     } 
     if (isDonePressed()) { 
     var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val(); 
     var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val(); 
     $(this).datepicker('setDate', new Date(year, month, 1)); 
     console.log('Done is pressed') 
     } 
    } 
    }).datepicker("setDate", myDate); 
}); 
+0

這是如何工作的?當我們在setDate中指定一個日期時,那麼defaulDate的日期應該設置爲那個日期?我的意思是這是與dateFormat發生什麼:'yy-mm-dd'? (defaultDate的日期自動設置爲與setDate中指定的日期相同?)我認爲,UI DatePicker顯示了defaultDate的日期(應該設置爲與setDate中指定的日期相同)。我是對嗎? – Curious

+0

一個是選項或偏好,另一個是方法。 'defaultDate'選項設置首次打開時突出顯示哪一天。 'setDate'方法設置日期選擇器的日期。 – Twisty

+0

但使用dateFormat:'yy-mm-dd',即使未設置defaultDate,UI DatePicker也會顯示setDate中指定的日期。怎麼樣?。我以前的評論是否對它的工作原理沒有任何意義? – Curious