Bootstrap (2) несколько средств выбора даты в IE7/8

У меня есть три поля даты, распределенные по трем формам на одной странице. Каждое поле даты использует средство выбора даты начальной загрузки. Каждое поле представляет собой дату рождения, и поэтому все три обновляются при каждом изменении любого из них.

Все это отлично работает в 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 и откройте скрипт. Затем перейдите на http://jsfiddle.net/draft в IE и войдите в систему, и ваша скрипка должна появиться.


person Pat Dobson    schedule 07.07.2014    source источник
comment
что, если вы замените $('#id').datepicker("update", newDoB); на $('#id').val(newDoB)?   -  person Aguardientico    schedule 08.07.2014
comment
Привет @Aguardientico: мы пробовали, он все еще работает в FF и Chrome, но без изменений в IE :o(   -  person Pat Dobson    schedule 08.07.2014


Ответы (1)


Проблема на самом деле с Internet Explorer.

Функция соединения в Internet Explorer фактически требует дополнительного параметра для работы так, как это делают Firefox и Chrome. IE ‹= 8 .splice() не работает

Если вы посмотрите на код bootstrap-datepicker.js, он содержит

this.splice(0);

Таким образом, ваши решения заключаются в том, чтобы либо захватить основную ветку bootstrap-datepicker с обновленным исправлением (которое еще не выпущено:/) https://github.com/eternicode/bootstrap-datepicker/blob/master/js/bootstrap-datepicker.js

OR

«исправить» работу функции splice(0) в Internet Explorer через javascript http://www.to-string.com/2012/05/29/fixing-splice-in-older-versions-of-internet-explorer-8-and-olders/

person andychin    schedule 26.11.2014