jquery UI DatePicker не исчезает в IE7 после выбора - PullRequest
2 голосов
/ 21 сентября 2009

Плагин datepicker для пользовательского интерфейса jQuery работает прекрасно, однако при использовании IE7 календарь не исчезает после выбора, как в FF, Safari и т. Д.

Вот URL http://www.mchenry.edu/insideApp/OIRPprojectrequest/oirpprojectrequestform.aspx

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

Thnx!

РЕДАКТИРОВАТЬ: попробуйте этот URL, http://www.mchenry.edu/test/oirpprojectrequestform.aspx

Извините за это!

Ответы [ 3 ]

1 голос
/ 31 марта 2011

Если у вас есть что-то подобное в настройке DatePicker:

onSelect: function () {this.focus (); } onClose: function () {this.focus (); }

Это приводит к тому, что элемент получает фокус и, таким образом, проверяется с помощью плагина проверки.

К сожалению, в IE7 это вызывает ошибку, так как событие фокуса вызывается дважды, а средство выбора даты сбивается с толку и снова появляется.

Решение состоит в том, чтобы не вызывать валидатор явно для элемента, а затем переместить фокус на следующий элемент для IE, чтобы сохранить порядок табуляции.

                onSelect: function () {
                    var elementCounter, input, form;
                    input = $(this);
                    form = input.parents('form:first');

                    // validate the selected date
                    form.validate().element(this);

                    if ($.browser.msie && $.browser.version < 8) {
                       // MSIE 7 triggers focus event twice, forcing the datepicker to re-open
                       // to get around this, we move the focus to the next form element

                       for (var elementCounter = 0; elementCounter < form[0].elements.length; elementCounter++){
                           if (form[0].elements[elementCounter].name == input.attr('name')) {
                               $(form[0].elements[elementCounter+1]).focus();
                               break;
                           }
                       }
                    } else {
                       // give focus back to the input element to preserve tabbing
                       $(this).trigger('focus');
                    }
                },
                onClose: function () {

                    // validate the selected date
                    $(this).parents('form:first').validate().element(this);

                }
0 голосов
/ 10 апреля 2013

Если вы укажете атрибут tabindex в своих полях ввода, это может хорошо сработать для вас:

onClose: function() {
    $('input[tabindex="' + ($(this).attr('tabindex') + 1) + '"]').focus();
}
0 голосов
/ 21 сентября 2009

Сведения об ошибке веб-страницы

Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 5.1; Trident / 4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Отметка времени: понедельник, 21 сентября 2009 г. 18:50:51 UTC

Сообщение: длина равна нулю или нет Строка объекта: 139 символов: 17 код: 0 URI: http://www.mchenry.edu/aspnet_client/system_web/1_1_4322/WebUIValidation.js

event.srcElement.Validators - это undefined, когда я перехожу через IE8. Вы хотите получить доступ к Validators на DispHTMLAnchorElement?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...