我有三个日期字段分布在一个页面上的三个表单中。 每个日期字段都使用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并登录,你就会出现小提琴。
答案 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/