0

我的日期选择器有问题。当我聚焦文本字段时,它会正确显示,但是当我单击屏幕中的其他任何位置(使其消失)时,如果我再次聚焦文本字段而没有事先选择另一个元素,则日期选择器不会显示。

这是代码:

$(function () {
        $('.date-picker').datepicker({
            changeMonth: true,
            changeYear: true,
            changeDay: true,
            showButtonPanel: true,
            dateFormat: 'dd MM yy',
            onClose: function (dateText, inst) {
                var day = $("#datepicker").datepicker('getDate').getDate();
                var month = $("#datepicker").datepicker('getDate').getMonth() + 1;
                var year = $("#datepicker").datepicker('getDate').getFullYear();
                $(this).datepicker('setDate', new Date(year, month, day));
            }
        });
    });
4

1 回答 1

1

问题出在你的onClose功能上。当您调用时$("#datepicker").datepicker('getDate').getdate(),您可能会调用getDate()null。

以下应该可以解决问题,希望它对您有用=)

$(function () {
  $('.date-picker').datepicker({
      changeMonth: true,
      changeYear: true,
      changeDay: true,
      showButtonPanel: true,
      dateFormat: 'dd MM yy',
      onClose: function (dateText, inst) {
          var getdate = $('#datepicker').datepicker('getDate');
          if(getdate) {
              var day = getdate.getDate();
              var month = getdate.getMonth() + 1;
              var year = getdate.getFullYear();
              $('#datepicker').datepicker('setDate', new Date(year, month, day));
          }
       }
    });
});

编辑:jsfiddle如果你需要一个工作的概念证明:http : //jsfiddle.net/jcolicchio/fpS2Q/

于 2012-11-23T07:32:30.670 回答