Переместить курсор на следующий элемент при вводе, отслеживая tabindex - PullRequest
0 голосов
/ 05 апреля 2020

Я использую следующий код для перехода к следующему элементу. Код работает нормально, за исключением tabindex = -1. Он не пропускает элементы с tabindex, установленным в -1.

        $('body').on('keydown', 'input, select', function(e) {
            if (e.key === "Enter") {
                var self = $(this), form = self.parents('form:eq(0)'), focusable, next;
                focusable = form.find('input,a,select,button,textarea').filter(':visible');
                next = focusable.eq(focusable.index(this)+1);
                if (next.length) {
                    next.focus();
                } else {
                    form.submit();
                }
                return false;
            }
        });

Я искал решение, но не смог его найти. Может кто-нибудь, пожалуйста, помогите.

1 Ответ

1 голос
/ 05 апреля 2020

Вы фокусируете внимание на следующем элементе, вы не позволяете браузеру обрабатывать его. Поэтому tabindex = -1 не работает.

Чтобы использовать tabindex, указанный в HTML, необходимо указать его в Javascript aswell (:not([tabindex="-1"])):

 focusable = form.find('input,a,select,button,textarea').filter(':not([tabindex="-1"]):visible');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...