fix(kiosko): bloquear Tab del escáner para que no salte al campo WhatsApp

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 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-23 10:50:00 -05:00
co-authored by Claude Sonnet 4.6
parent 24211de0e9
commit f8903a4982
+18
View File
@@ -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(() => {