Календарь начальной загрузки показывает два календаря в IE 11

#javascript #twitter-bootstrap #datetime #datetimepicker #bootstrap-datetimepicker

#javascript #twitter-bootstrap #дата и время #datetimepicker #bootstrap-datetimepicker

Вопрос:

Календарь начальной загрузки показывает два календаря в IE 11, когда я нажимаю на значки << или >>, чтобы получить предыдущий или последний месяц. Ниже приведен код, написанный для отображения календаря. Пожалуйста, помогите. Заранее спасибо.

 $(".datepicker, .date").datepicker({
        format: 'dd M yyyy',
        weekStart: 1,
        todayBtn: "linked",
        showTodayButton: true,
        forceParse: false,
        //clearBtn: true,
        beforeShowDay: function (date) {
            var d = date.getDate();
            var m = date.getMonth()   1;
            var y = date.getFullYear();

            if (holidayJson[y] amp;amp; holidayJson[y][m] amp;amp; holidayJson[y][m][d]) {
                var s = holidayJson[y][m][d];
                return {
                    tooltip: s.tooltip,
                    classes: s.className
                };
            } else {
                return { tooltip: 'amp;nbsp;', classes: '' };
            }
        }
    });    
  

Я думаю, что проблема связана с функцией beforeShowDay, если я удалю ее, она будет работать нормально. Ниже приведен html-код из html-файла и aspx-файла.

  <div class="input-append date" style="cursor: pointer; display: inline;">
    <input type="text" id="FromDate" class="form-control input-sm" onfocus="blur();" data-ng-model="ttsViewModel.FromDate" style="display: inline-block;" />
    <span class="add-on" id="FromDateAddOn" style="font-size: 16px; color: #c09853;"><i class="fa fa-calendar" style="padding-left: 3px; padding-top: 4px;"></i></span>
</div>

<div class="input-append date" style="cursor: pointer; display: inline;"  data-date-format="dd M yyyy">
    <asp:TextBox ID="txtFdate" Width="80px" runat="server" ToolTip="mm/dd/yyyy" ClientIDMode="Static" CssClass="form-control input-sm"   
            style="width: 80px; display: inline-block;" ></asp:TextBox>

    <span class="add-on" style="font-size: 16px; color: #c09853;"><i class="fa fa-calendar" style="padding-left: 3px; padding-top: 4px;"></i></span>
</div>
  

введите описание изображения здесь

Комментарии:

1. Пожалуйста, укажите свой HTML

2. ДА.. пожалуйста, вставьте html..

3. обновлен фрагмент HTML-кода

4. Вы когда-нибудь находили решение для этого? Я сталкиваюсь с такой же ситуацией.

Ответ №1:

Проблема вызвана тем, как вы применяете функцию выбора даты к своему элементу / текстовому полю. Class .datepicker уже используется самой библиотекой для окна выбора даты, используя то же имя класса для указания элементов, к которым применяются указатели даты, что приводит к тому, что ваш код пытается добавить новый указатель даты во всплывающее окно выбора даты (потому что он пытается добавить указатель даты к каждому элементу, имеющему class .datepicker, и всплывающее окно выбора даты использует этот класс).

Насколько я знаю, это, по-видимому, вызывает ошибку только при переключении месяца и при использовании IE11, по каким-либо причинам. Возможно, потому, что другой щелчок во всплывающем окне выбора даты вызывает изменение режима выбора даты и перерисовку выбора даты.

Попробуйте просто использовать другой класс, чем ‘.datepicker’, чтобы реализовать datepickers для вашего элемента управления (т.е. .attachadatepickertothiscontrol)