Tengo un problema levemente inusual relacionado con la forma. Mi aplicación web escucha la entrada del escáner desde un lector de código de barras. El lector de código de barras se presenta como la entrada de teclado en el siguiente formato:¿Detener nueva línea enviando un formulario?
~100.0101~\n
donde \n
es una nueva línea. Utilizo un oyente javascript global con una expresión regular: cada vez que el oyente "escucha" la entrada que coincide con la expresión regular, llamo a mi función barcodeHandler()
.
Por desgracia, este no interactúa bien con formas: si el usuario se centra en un formulario de entrada cuando se escanean, se envía el formulario y mensajes de vuelta antes de que el oyente entra en acción, ya que la forma \n
toma para significar 'enviar '.
No puedo cambiar la entrada del escáner, entonces ¿hay alguna forma de que pueda detener el envío de formularios cuando se ingresa el \n
?
Obviamente, todavía me gustaría que mis formularios funcionen con la tecla Intro, y prefiero no cambiar el comportamiento de formulario predeterminado si es posible.
muchas gracias!
puede utilizar jQuery y asignar una función especial en las acciones clave y hacer event.preventDefault(); para evitar que la clave "enter" se procese como un envío del formulario. – ITroubs
Gracias, aunque realmente me gustaría que la tecla Intro siga funcionando, simplemente no es el '\ n' que proporciona el escáner de código de barras. ¿Hay alguna forma de distinguir entre los dos? – AP257
Ah, puedo simplemente aplicar el detector de eventos cuando se ha emparejado la primera parte de la expresión regular. Eso funciona. – AP257