Javascript jQuery日期选择器对话框在任何版本的Internet Explorer中都不起作用
jQuery日期选择器有一个奇怪的问题。在Chrome、FF中工作正常,但在Internet Explorer中,它的渲染效果与所附的图像类似,即使是IE 11,正如您在没有日历的情况下看到的那样 当它呈现为这样时,不会出现控制台错误,我正在初始化: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(/-
$('.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”:
//添加一个jsfiddle,我们可以在其中看到实时错误fiddle肯定会有所帮助。我现在注意到的唯一一件事是,您正在声明newdate(“”)
,但在onClose函数中使用了$spanElement
。将在小提琴中重新创建-@n抱歉,我缺少包装函数,请立即添加spanElement
$('.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'); });