Javascript jQuery日期选择器对话框在任何版本的Internet Explorer中都不起作用

Javascript jQuery日期选择器对话框在任何版本的Internet Explorer中都不起作用,javascript,jquery,internet-explorer,jquery-ui-datepicker,Javascript,Jquery,Internet Explorer,Jquery Ui Datepicker,jQuery日期选择器有一个奇怪的问题。在Chrome、FF中工作正常,但在Internet Explorer中,它的渲染效果与所附的图像类似,即使是IE 11,正如您在没有日历的情况下看到的那样 当它呈现为这样时,不会出现控制台错误,我正在初始化: $('.customDateInput').each(function (idx) { var $this = $(this); var defaultDate = $this.attr("value").replace(/-

jQuery日期选择器有一个奇怪的问题。在Chrome、FF中工作正常,但在Internet Explorer中,它的渲染效果与所附的图像类似,即使是IE 11,正如您在没有日历的情况下看到的那样

当它呈现为这样时,不会出现控制台错误,我正在初始化:

$('.customDateInput').each(function (idx) {
     var $this = $(this);
     var defaultDate = $this.attr("value").replace(/-/g, ",");
     var $datepicker = $this.parent().find(".datepicker");
     var $spanElement = $this.parent().find(".datepicker-button span");
     (function (picker, altField, defaultDate, spanElement) {
          picker.datepicker({
               yearRange: "c-75:c+10",
               firstDay: 1,
               dateFormat: 'D, d M yy',
               changeMonth: true,
               changeYear: true,
               altField: altField,
               altFormat: 'yy-mm-dd',
               defaultDate: new Date(defaultDate),
               onClose: function(dateText, inst) {
                   if (dateText) {       
                        spanElement.html('<strong>'+dateText+'</strong>');
                   }
               }
          });
      })($datepicker, $this, defaultDate, $spanElement);
});

$('.datepicker-button').click(function(){
        $(this).parent().find(".datepicker").datepicker('show');
});
$('.customDateInput')。每个(函数(idx){
var$this=$(this);
var defaultDate=$this.attr(“值”).replace(/-/g,“,”);
var$datepicker=$this.parent().find(“.datepicker”);
var$spanElement=$this.parent().find(“.datepicker按钮span”);
(函数(选择器、altField、defaultDate、spanElement){
日期选择器({
年份范围:“c-75:c+10”,
第一天:1,
日期格式:“D,D,M,yy”,
变化月:对,
变化年:是的,
阿尔特菲尔德:阿尔特菲尔德,
altFormat:'年-月-日',
defaultDate:新日期(defaultDate),
onClose:函数(dateText,inst){
如果(日期文本){
spanElement.html(''+dateText+'');
}
}
});
})($datepicker,$this,defaultDate,$spanElement);
});
$('.datepicker按钮')。单击(函数(){
$(this.parent().find(“.datepicker”).datepicker('show');
});

只是想知道如何调试它

好吧,我终于弄明白了,问题在于传入默认日期,因为IE中有以下警告,NaN会破坏日历

给定
defaultDate
保存日期为“2014,12,18”,无日期为“2014,12,18”:


  • newdate(“”)
    //添加一个jsfiddle,我们可以在其中看到实时错误fiddle肯定会有所帮助。我现在注意到的唯一一件事是,您正在声明
    $spanElement
    ,但在onClose函数中使用了
    spanElement
    。将在小提琴中重新创建-@n抱歉,我缺少包装函数,请立即添加
    $('.customDateInput').each(function (idx) {
        var $this = $(this);
        var defaultDate = $this.attr("value").replace(/-/g, ",");
        var $datepicker = $this.parent().find(".datepicker");
        var $spanElement = $this.parent().find(".datepicker-button span");
        (function (picker, altField, defaultDate, spanElement) {
    
          /** Solution to issue **/
          if(defaultDate) {
              defaultDate = defaultDate.split(',');
              defaultDate = new Date(defaultDate[0], defaultDate[1] - 1, defaultDate[2]);
          } else {
              defaultDate = null;
          }
          /** End of solution **/
    
          picker.datepicker({
               yearRange: "c-75:c+10",
               firstDay: 1,
               dateFormat: 'D, d M yy',
               changeMonth: true,
               changeYear: true,
               altField: altField,
               altFormat: 'yy-mm-dd',
               defaultDate: new Date(defaultDate),
               onClose: function(dateText, inst) {
                   if (dateText) {       
                        spanElement.html('<strong>'+dateText+'</strong>');
                   }
               }
          });
       })($datepicker, $this, defaultDate, $spanElement);
    });
    
    $('.datepicker-button').click(function(){
        $(this).parent().find(".datepicker").datepicker('show');
    });