Bootstrap(2)IE7 / 8中的多个日期选择器

时间:2014-07-07 12:38:45

标签: javascript twitter-bootstrap bootstrap-datepicker

我有三个日期字段分布在一个页面上的三个表单中。 每个日期字段都使用bootstrap datepicker。 每个字段都是一个出生日期,因此,只要有任何一个字段发生更改,这三个字段都会更新。

这一切都适用于FF,Chrome等。

但是,当你到达IE8 / 7时,日期选择器不是清除输入字段,而是以逗号分隔的列表样式连接新值。 我尝试过使用multidate:false(即使这是默认值)但它没有效果。

有什么想法吗?

这是小提琴:http://jsfiddle.net/moonspace/xaH2n/

以下是代码:

// Set default value
$("#oneDate").val("01/01/1990");
$("#twoDate").val("01/01/1990");
$("#threeDate").val("01/01/1990");

var defaultDate = "25/12/1990";

// Set up datepicker
$("#oneDate, #twoDate, #threeDate").datepicker({
    format: "dd/mm/yyyy",
    startDate: "-89y",
    endDate: "-17y",
    startView: 2,
    autoclose: true,
    orientation: "top left"
}).on("changeDate", function() {
    var newDoB = $(this).val();

    $("#oneDate").datepicker("update", newDoB);
    $("#twoDate").datepicker("update", newDoB);
    $("#threeDate").datepicker("update", newDoB);
});

// Reset value
$("button").on("click", function() {
    $("#oneDate").datepicker("update", defaultDate);
    $("#twoDate").datepicker("update", defaultDate);
    $("#threeDate").datepicker("update", defaultDate);
}); 

提示: 我们发现,要在IE中运行小提琴,请在chrome / FF中登录您的帐户并打开小提琴。然后转到IE中的http://jsfiddle.net/draft并登录,你就会出现小提琴。

1 个答案:

答案 0 :(得分:0)

实际上这个问题与Internet Explorer有关。

Internet Explorer中的拼接功能实际上需要一个额外的参数来运行Firefox和Chrome的功能。 IE <= 8 .splice() not working

如果你看一下它包含的bootstrap-datepicker.js代码

this.splice(0);

因此,您的解决方案是使用更新的修补程序(尚未发布)来获取bootstrap-datepicker的主分支:/) https://github.com/eternicode/bootstrap-datepicker/blob/master/js/bootstrap-datepicker.js

OR

&#39;固定&#39; splice(0)函数如何通过javascript在Internet Explorer中工作 http://www.to-string.com/2012/05/29/fixing-splice-in-older-versions-of-internet-explorer-8-and-olders/