Я хочу захватить клавиши Enter и Tab для указания элемента c на веб-сайте. На рабочем столе и iOS все работает нормально, но на Android (Huawei P20 Pro, Android 9, Chrome 80, Swiftkey Keyboard) браузер не будет работать.
Рабочий стол / iOS:
- Фокус первого ввода
- Введите любой текст
- Нажмите Enter / Tab
- отображается предупреждение
Не работает:
- Фокусировать первый ввод
- Введите любой текст
- Нажмите «Далее» на клавиатуре => Событие не инициировано (по крайней мере, нет событие клавиатуры)
- Фокус второго ввода
- Введите любой текст
- Нажмите «✓» (на этот раз нет «следующего»)
- Отображается предупреждение
Вот пример JSFiddle: https://jsfiddle.net/y3drw2m1/
function trapEnter(e, inputControl) {
e = e || window.event;
var keyCode = e.keyCode || e.which || e.charCode || 0;
console.log("trapEnter, e", e);
// start a specific action only of the user presses enter or tab (I tried to capture the "next" button from the swiftkey keyboard)
if (keyCode === 13 || keyCode === 9) {
alert("Start action")
// Prevent submit in webforms
return false;
}
// normal characters like abc123 are okay
return true;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form>
<input type="text" id ="text1" onkeydown="return trapEnter(event, this);" />
<input type="text" id ="text2" onkeydown="return trapEnter(event, this);"/>
</form>