Я сталкиваюсь с противоречивым поведением между 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 принимает ввод ключа на уровне формы?