Android не отправит Enter или Tab Key для всех входов, кроме последнего в форме - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу захватить клавиши Enter и Tab для указания элемента c на веб-сайте. На рабочем столе и iOS все работает нормально, но на Android (Huawei P20 Pro, Android 9, Chrome 80, Swiftkey Keyboard) браузер не будет работать.

Рабочий стол / iOS:

  1. Фокус первого ввода
  2. Введите любой текст
  3. Нажмите Enter / Tab
  4. отображается предупреждение

Не работает:

  1. Фокусировать первый ввод
  2. Введите любой текст
  3. Нажмите «Далее» на клавиатуре => Событие не инициировано (по крайней мере, нет событие клавиатуры)
  4. Фокус второго ввода
  5. Введите любой текст
  6. Нажмите «✓» (на этот раз нет «следующего»)
  7. Отображается предупреждение

Вот пример 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>

...