En este tutorial aprenderás cómo reaccionar a los cambios en los elementos input de los formularios web con JavaScript. Es importante utilizar los manejadores de eventos adecuados para optimizar la experiencia del usuario y asegurarse de obtener los valores correctos para su posterior procesamiento. En particular, nos centraremos en los eventos onchange y oninput para garantizar que tus entradas se procesen de manera dinámica y eficiente.

Principales conclusiones

  • El evento onchange se activa cuando el usuario quita el foco de un campo de entrada y se han realizado cambios.
  • El evento oninput se activa con cada entrada y permite una interacción directa con el usuario.
  • Los valores devueltos por los elementos de entrada son originalmente cadenas y pueden necesitar ser convertidos al tipo de dato correcto (por ejemplo, a través de parseFloat o valueAsNumber).

Guía paso a paso

Para demostrar los conceptos mencionados, seguiremos diferentes pasos para registrar eventos en un campo de entrada y trabajar con los datos.

Paso 1: Configurar un elemento de entrada

Primero, debes crear un simple elemento de entrada de tipo número en tu archivo HTML. Estructura tu HTML con un campo de entrada para la edad.

Reacciona a los cambios en elementos de entrada con JavaScript

Paso 2: Agregar y probar el evento onchange

Ahora agregaremos un manejador de eventos para el evento onchange. Haremos esto creando una función que se llamará cuando el usuario quite el foco del elemento de entrada.

Reacciona a los cambios en los elementos de entrada con JavaScript

Cabe destacar que al cambiar el valor, podemos acceder directamente a los datos introducidos en el elemento de entrada.

Reacciona a cambios en elementos de entrada con JavaScript

Paso 3: Procesamiento del valor de entrada

Dentro de esta función, puedes obtener el valor del elemento de entrada a través del objeto evento. El acceso al valor debe hacerse a través de event.target.value para obtener directamente el valor actual.

Reacciona a los cambios en los elementos de entrada con JavaScript

Por ejemplo, ¿podría haber situaciones en las que queremos publicar o procesar el valor introducido, pero primero necesitamos verificarlo? Aquí es donde los diferentes tipos de valores son relevantes, especialmente si se desean realizar cálculos numéricos.

Reacciona a cambios en elementos de entrada con JavaScript

Paso 4: Verificación del tipo de valor

Como habrás notado, el elemento de entrada siempre devuelve el valor como cadena. Para asegurarnos de recibir un número, podemos utilizar una conversión de tipo. Puedes utilizar parseFloat para asegurarte de trabajar con el tipo de dato correcto.

Paso 5: Implementación del evento oninput

Si necesitas una reacción dinámica cuando el usuario introduce algo, debes usar el método oninput como complemento al onchange. Esto significa que cada vez que el usuario presiona una tecla o cambia el valor, la función se activa directamente.

Reacciona a los cambios en los elementos de entrada con JavaScript

Paso 6: Comparación de los dos eventos

Observa cómo oninput y onchange difieren entre sí. oninput se activa con cada entrada, mientras que onchange solo se activa cuando el usuario abandona el campo de entrada. Esto es especialmente útil si se desea retroalimentación en tiempo real.

Reacciona a los cambios en los elementos de entrada con JavaScript

Paso 7: Trabajo con diferentes tipos de entrada

Los métodos que utilizas para un campo de entrada de tipo número también se aplican a otros tipos como texto o color. Si usas un campo para seleccionar un color, notarás rápidamente que la utilización de los eventos debe adaptarse al tipo de entrada.

Reacciona a los cambios en elementos de entrada con JavaScript

Resumen

En este tutorial has aprendido cómo utilizar JavaScript para reaccionar a las interacciones de los usuarios en los campos de entrada. Has aprendido cómo funciona onchange y oninput, y la importancia de procesar adecuadamente los valores de entrada según el tipo.

Preguntas frecuentes

¿Qué eventos puedo usar para los elementos de entrada?Puedes usar onchange, oninput, así como otros eventos como onclick o eventos de teclado específicos.

¿Cómo puedo obtener el valor actual de un campo de entrada?Usa event.target.value para obtener el valor actual.

¿Cuándo se desencadena el evento onchange?El evento onchange se desencadena cuando el usuario quita el enfoque del campo de entrada y ha realizado cambios.

¿Cómo puedo asegurarme de que un valor se interprete como número?Puedes usar parseFloat() o valueAsNumber para convertir la cadena en un número.

¿Hay diferencias entre oninput y onchange?Sí, oninput se llama en cada cambio de valor, mientras que onchange se desencadena solo cuando el foco sale del campo de entrada.