Jquery datepicker下拉列表显示当前日期而不是所选日期

时间:2017-12-19 09:45:17

标签: javascript jquery date 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;
            }
        }
    });

2 个答案:

答案 0 :(得分:0)

datepicker dateformat字段似乎存在一些问题。您可以做的是代替dateFormat: 'MM yy'替换为dateFormat: 'dd MM, yy'这会有效吗?

答案 1 :(得分:0)

您需要在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));
   }
}
});});

JSFiddle