Основание DatePicker в JQuery UI диалог не работает в Internet Explorer - PullRequest
0 голосов
/ 08 июня 2018

Я обнаружил странную ошибку во время тестирования браузера в моем приложении:

https://jsfiddle.net/jeroendemuyt/w6prze3t/91/

У меня есть диалоговое окно jQuery UI, в котором есть элемент ввода, в котором я применяю основание DatePickerфункциональность до.

<div class="field-dialog-2">
    <input type="text" class="load-datepicker">
</div>

В большинстве браузеров это работает нормально.Однако в Internet Explorer 11 это ломается.Когда диалоговое окно развернуто, вы не можете использовать кнопки «назад» и «вперед».Когда я нажимаю кнопки, он всегда хочет вернуться к начальному месяцу / decenium /...

Как вы можете видеть в скрипте, я попробовал несколько способов, чтобы понять, в чем причинавопрос.Похоже, что комбинация диалогов jquery с основанием DatePicker не работает в Internet Explorer.

Кто-нибудь знает, как это исправить?Я действительно хотел бы, чтобы это было совместимо с IE

1 Ответ

0 голосов
/ 11 июня 2018

Мне удалось решить проблему самостоятельно после долгих экспериментов.

Проблема заключалась в том, что по какой-то причине IE пытается снова сфокусироваться на диалоговом окне после нажатия в любом месте средства выбора даты.

Итак, когда я нажимаю на любой из элементов управления в средстве выбора даты, кроме обычного обработчика щелчка, который изменяет месяц / decenium / ..., он также придает фокус диалогу к диалогу.Поскольку диалоги пользовательского интерфейса JQuery имеют функцию автофокуса, это означает, что диалог передает фокус элементу ввода datepicker, который сбрасывает datepicker на начальную дату.Это в основном аннулировало любое действие, которое я сделал с указателем даты.

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

$.ui.dialog.prototype._focusTabbable = $.noop;

Я также обновил свой jsFiddle своим решением: https://jsfiddle.net/jeroendemuyt/w6prze3t/110/

Я надеюсьЭто решение избавит других людей от стресса, который я исправил:)

...