From 1aaf254c3c3c07f95b63bdf760791859a80aa4a4 Mon Sep 17 00:00:00 2001 From: Johannes Eder Date: Thu, 27 May 2021 17:31:16 +0200 Subject: [PATCH] fix: next input area is now selected via a css query --- frontend/src/utils/form/enter-is-tab.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/frontend/src/utils/form/enter-is-tab.js b/frontend/src/utils/form/enter-is-tab.js index 24d970ea6..1c50ef298 100644 --- a/frontend/src/utils/form/enter-is-tab.js +++ b/frontend/src/utils/form/enter-is-tab.js @@ -1,7 +1,7 @@ import { Utility } from '../../core/utility'; const ENTER_IS_TAB_INITIALIZED_CLASS = 'enter-as-tab--initialized'; -const FORM_GROUP_INPUT_ID = 'hident29'; +const AREA_SELECTOR = 'input, textarea'; @Utility({ selector: '[uw-enter-as-tab]', @@ -30,8 +30,19 @@ export class EnterIsTab { this._element.addEventListener('keypress', (e) => { if(e.key === 'Enter') { e.preventDefault(); - let messageArea = document.getElementById(FORM_GROUP_INPUT_ID); - messageArea.focus(); + let currentInputFieldId = this._element.id; + let inputAreas = document.querySelectorAll(AREA_SELECTOR); + let nextInputArea = null; + for (let i = 0; i < inputAreas.length; i++) { + if(inputAreas[i].id === currentInputFieldId) { + nextInputArea = inputAreas[i+1]; + break; + } + } + + if(nextInputArea) { + nextInputArea.focus(); + } } }); }