任何人都对此有任何想法。我有这个日期选择器在FF上工作,但似乎没有在IE上工作

时间:2013-01-27 13:31:19

标签: jquery datepicker

我发现了这个datepicker事件,但没有在IE上工作。我不知道这段代码有什么问题。

var Event = function(text, className) {
        this.text = text;
        this.className = className;
    };


var events = {};
events[new Date("18/Jan/2013")] = new Event("Drinks @ Seymours - Alumni Event", "Yes");
events[new Date("16/Jan/2013")] = new Event("Retired Staff Luncheon", "Yes");
events[new Date("13/Jan2013")] = new Event("October Spring Lunch - Alumni Event", "Yes");


$("#dates").datepicker({
    dateFormat: 'dd/M/yy',  
    firstDay: 1,
    showOtherMonths: true,
    onSelect: function(date) {
        $('#CAT_Custom_241423').val(date);
        $('#submit-btn-webapp').trigger('click');
    },
    beforeShowDay: addClass 
});

function addClass(date) { 
    var event=events[date];
    if(event){
        return[true,event.className,event.text];
    }
    else {
        return[true,'',''];
    }
}

谷歌浏览器ff正常运行。 这是jsfiddle上的工作代码

http://jsfiddle.net/7U56z/

1 个答案:

答案 0 :(得分:0)

问题是事件键(生成的日期)。如果您在IE中尝试以下内容:

 alert(new Date("18/Jan/2013"));

您将收到错误(无效日期)。所以你永远不会在你的功能中获得匹配。像这样定义键(或类似于此):

 events[(new Date(2013, 0, 18, 0, 0, 0))] = new Event(....)
 // format in this case is:
 // new Date(year,month,day,hour,minute,second)
 // month starts with 0.

它有效。在这种情况下,您不必设置小时,分钟和秒。您只需确保生成的密钥是有效日期,并匹配来自datepicker的日期。

顺便说一下,我会将你的“Event”对象重命名为不同的东西,因为已经有一个window.event有点令人困惑。