Альтернатива использованию tabindex для включения элементов для ввода клавиш в Chrome - PullRequest
0 голосов
/ 05 марта 2019

Я сталкиваюсь с противоречивым поведением между Chrome и Internet Explorer, где IE работает, а Chrome нет.Я пытаюсь заставить форму принять ключ ввода для отправки.Это Javascript для него:

$("#formElementId").on("keyup", function (e) {
    if (e.keyCode == 13 || e.which == 13) {
        if (e.target.id == "excludedElementId")
            e.stopPropagation();
        else
            document.getElementById("submitButtonId").click();
    }
});

Причина, по которой он не работает в Chrome, заключается в том, что элемент form не принимает ввод с клавиатуры.Это можно исправить, присвоив элементу form значение tabindex, что позволит ему быть сфокусированным.Это рекомендуемое решение в этой публикации SO .

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

Есть ли лучший способ обработать клавишу ввода для Chrome?И, наконец, почему IE принимает ввод ключа на уровне формы?

1 Ответ

1 голос
/ 06 марта 2019

Установите tabindex="-1", чтобы сделать его фокусируемым, но не частью порядка табуляции.См. MDN для документации по этому поведению.

Используйте стиль css для формы с селектором :focus css для управления стилем, когда форма имеет фокус (и удаляет ее границу или контурили что бы то ни было, когда оно сосредоточено).

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