当setDate
与dateFormat : '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显示setDate
中dateFormat : 'yy-mm'
指定的日期?
答案 0 :(得分: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);
});
答案 1 :(得分: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));
}
}