From f8903a4982f5c3d6016177cbf0ed09f84f2007f3 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 23 Jul 2026 10:50:00 -0500 Subject: [PATCH] =?UTF-8?q?fix(kiosko):=20bloquear=20Tab=20del=20esc=C3=A1?= =?UTF-8?q?ner=20para=20que=20no=20salte=20al=20campo=20WhatsApp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El lector de cédula envía los campos con Tab entre ellos. Se previene el cambio de foco en keydown. Si algo llega igualmente a inp-cel (letras) se limpia y regresa el foco a la cédula. Co-Authored-By: Claude Sonnet 4.6 --- modules/turnero/views/kiosko.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/modules/turnero/views/kiosko.php b/modules/turnero/views/kiosko.php index 80e89fd..24e0a13 100644 --- a/modules/turnero/views/kiosko.php +++ b/modules/turnero/views/kiosko.php @@ -551,7 +551,12 @@ unset($p); }); // El lector casi siempre envía Enter al final → disparar de inmediato. + // Tab entre campos del código de barras: prevenir que el browser cambie el foco. _inpCedula.addEventListener('keydown', (e) => { + if (e.key === 'Tab') { + e.preventDefault(); + return; + } if (e.key === 'Enter') { e.preventDefault(); const val = _inpCedula.value.trim(); @@ -559,6 +564,19 @@ unset($p); } }); + // Si el Tab escapó y algo llegó al campo WhatsApp, limpiarlo. + document.getElementById('inp-cel').addEventListener('keydown', (e) => { + if (e.key === 'Tab') e.preventDefault(); + }); + document.getElementById('inp-cel').addEventListener('input', () => { + const v = document.getElementById('inp-cel').value; + // Si contiene letras → vino del escáner, limpiar y devolver foco a cédula + if (/[a-zA-Z]/.test(v)) { + document.getElementById('inp-cel').value = ''; + _inpCedula.focus(); + } + }); + function resetInactividad() { clearTimeout(_timerInactividad); _timerInactividad = setTimeout(() => {