Jquery datepicker下拉列表显示当前日期而不是所选日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jquery datepicker下拉列表显示当前日期而不是所选日期相关的知识,希望对你有一定的参考价值。
如果你看,开始日期的选定值是'2016年12月',但当我点击它时,它显示当前的月份和年份。它应显示所选值(2016年12月)。知道如何解决它?
以下是开始日期datepicker的代码:
$('#startDateEdEdit').datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'MM yy',
setDate: startDateEd,
yearRange: `1920:${todayYear+10}`,
onClose: function(dateText, inst) {
startDateEdEdit = new Date(inst.selectedYear, inst.selectedMonth, 1);
$(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));
if(endDateEdEdit < startDateEdEdit){
$('#endDateEdEdit').datepicker('setDate',null);
}
else {
var duration = $('#endDateEdEdit').datepicker('getDate')?durationCalculator(startDateEdEdit, endDateEdEdit):null;
document.getElementById('durationEdit').value = duration.duration;
document.getElementById('eduEdit-duration').value = duration.years;
}
}
});
答案
datepicker dateformat字段似乎存在一些问题。你可以做的是用dateFormat: 'MM yy'
代替dateFormat: 'dd MM, yy'
取代那会有用吗?
另一答案
您需要在onClose和beforeShow事件之间进行调整。
$(function() {
$('.date-picker').datepicker( {
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'MM yy'
onClose: function() {
var iMonth = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var iYear = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
$(this).datepicker('setDate', new Date(iYear, iMonth, 1));
},
beforeShow: function() {
if ((selDate = $(this).val()).length > 0)
{
iYear = selDate.substring(selDate.length - 4, selDate.length);
iMonth = jQuery.inArray(selDate.substring(0, selDate.length - 5),
$(this).datepicker('option', 'monthNames'));
$(this).datepicker('option', 'defaultDate', new Date(iYear, iMonth, 1));
$(this).datepicker('setDate', new Date(iYear, iMonth, 1));
}
}
});});
以上是关于Jquery datepicker下拉列表显示当前日期而不是所选日期的主要内容,如果未能解决你的问题,请参考以下文章
如何显示日期来自 jQuery instated 的显示当前日期?
如何显示日期来自jQuery instated显示当前日期?
jQuery DatePicker:如何将年份数组传递给 yearRange 下拉列表
jQuery DatePicker:如何将年份数组传递给yearRange下拉列表