hace 3 años
En el dinámico mundo del desarrollo web, JavaScript se erige como un pilar fundamental para la creación de experiencias de usuario interactivas y atractivas. Dentro del vasto arsenal de herramientas que ofrece este lenguaje, los eventos juegan un papel crucial al permitir que las páginas web respondan a las acciones del usuario. Entre estos eventos, el evento onblur destaca por su utilidad en la gestión del foco en elementos HTML, especialmente en formularios. Este artículo te guiará a través de todo lo que necesitas saber sobre el evento onblur en JavaScript, desde su definición y sintaxis hasta ejemplos prácticos y comparaciones con eventos relacionados.

¿Qué es el evento onblur en JavaScript?
El evento onblur en JavaScript se dispara cuando un elemento HTML pierde el foco. En términos más sencillos, ocurre cuando un usuario ha interactuado con un elemento, como un campo de texto, y luego decide seleccionar otro elemento en la página o simplemente hacer clic fuera de él. Este evento es particularmente útil en formularios web, donde se puede utilizar para validar la información introducida por el usuario justo después de que este termine de interactuar con un campo específico.
Imagina un formulario de registro en línea. Cuando un usuario completa su nombre de usuario y pasa al siguiente campo o hace clic fuera del campo de nombre de usuario, el evento onblur se activa en ese campo. En este momento, puedes utilizar JavaScript para verificar si el nombre de usuario cumple con ciertos criterios, como longitud mínima o formato específico, y proporcionar retroalimentación inmediata al usuario.
Sintaxis del evento onblur
La sintaxis para utilizar el evento onblur es bastante sencilla y se puede implementar de varias maneras en HTML y JavaScript:
1. Atributo HTML onblur
La forma más directa es utilizando el atributo onblur directamente en la etiqueta HTML del elemento al que deseas aplicar el evento. La sintaxis general es:
<elemento onblur="script_javascript">Donde <elemento> puede ser cualquier elemento HTML que admita el evento onblur, como <input>, <textarea>, <select>, entre otros. script_javascript representa el código JavaScript que se ejecutará cuando el evento onblur se dispare.
Ejemplo:
<input type="text" id="nombreUsuario" onblur="validarUsuario()"> <script> function validarUsuario() { let usuario = document.getElementById("nombreUsuario").value; if (usuario.length < 5) { alert("El nombre de usuario debe tener al menos 5 caracteres."); } } </script>En este ejemplo, cuando el usuario sale del campo de texto con el ID "nombreUsuario", la función validarUsuario() se ejecuta. Esta función verifica si la longitud del nombre de usuario es menor a 5 caracteres y, si lo es, muestra una alerta.
2. Propiedad onblur en JavaScript
También puedes asignar el evento onblur directamente desde JavaScript utilizando la propiedad onblur del elemento. Primero, necesitas seleccionar el elemento HTML y luego asignar una función a su propiedad onblur.
Ejemplo:
<input type="text" id="email"> <script> let campoEmail = document.getElementById("email"); campoEmail.onblur = function() { let email = campoEmail.value; if (!email.includes("@")) { alert("Por favor, introduce un email válido."); } }; </script>En este caso, una función anónima se asigna a la propiedad onblur del elemento con ID "email". Esta función se ejecuta cuando el campo de email pierde el foco y verifica si el valor del email contiene el carácter "@". Si no lo contiene, muestra una alerta.
3. addEventListener()
La forma más recomendada y flexible de gestionar eventos en JavaScript es utilizando el método addEventListener(). Este método permite añadir múltiples event listeners a un mismo elemento sin sobrescribir los existentes.

Ejemplo:
<input type="password" id="contrasena"> <script> let campoContrasena = document.getElementById("contrasena"); campoContrasena.addEventListener('blur', function() { let contrasena = campoContrasena.value; if (contrasena.length < 8) { alert("La contraseña debe tener al menos 8 caracteres."); } }); </script>Aquí, se utiliza addEventListener('blur', ...) para adjuntar un listener al evento onblur del campo de contraseña. La función proporcionada como segundo argumento se ejecutará cuando el campo de contraseña pierda el foco y verificará la longitud mínima de la contraseña.
Elementos HTML compatibles con onblur
El evento onblur es compatible con la mayoría de los elementos HTML, especialmente aquellos que pueden recibir el foco del usuario. Los elementos más comunes donde se utiliza onblur incluyen:
<input>(todos los tipos: text, password, email, etc.)<textarea><select><button><a><body><div><span>- Y muchos otros elementos interactivos.
Sin embargo, existen algunos elementos que no admiten el evento onblur, como:
<base><bdo><br><head><html><iframe><meta><param><script><style><title>
Diferencia entre onfocus y onblur
Es fundamental comprender la diferencia entre onblur y su evento hermano, onfocus. Mientras que onblur se dispara cuando un elemento pierde el foco, onfocus se activa cuando un elemento gana el foco. Estos dos eventos son opuestos y complementarios, y a menudo se utilizan juntos para crear interacciones de usuario más ricas y completas.
onfocus es útil para resaltar un campo cuando el usuario lo selecciona, proporcionar instrucciones o información contextual justo cuando el usuario está a punto de interactuar con un elemento. Por otro lado, como ya hemos visto, onblur es ideal para realizar validaciones o acciones después de que el usuario ha terminado de interactuar con un elemento.
Tabla comparativa: onfocus vs onblur
| Característica | Evento onfocus | Evento onblur |
|---|---|---|
| Disparador | Cuando el elemento gana el foco. | Cuando el elemento pierde el foco. |
| Uso principal | Proporcionar información al usuario al seleccionar un elemento, resaltar campos. | Validar datos introducidos por el usuario, realizar acciones al salir de un campo. |
| Momento de ejecución | Antes de que el usuario comience a interactuar (o al inicio de la interacción). | Después de que el usuario ha terminado de interactuar (o al final de la interacción). |
| Ejemplos de uso | Mostrar un mensaje de ayuda al hacer clic en un campo, cambiar el color de fondo de un campo seleccionado. | Validar un email después de que el usuario lo escribe, guardar datos automáticamente al salir de un campo. |
Casos de uso comunes del evento onblur
El evento onblur es increíblemente versátil y se puede utilizar en una variedad de situaciones para mejorar la experiencia del usuario y la funcionalidad de las aplicaciones web. Algunos de los casos de uso más comunes incluyen:
1. Validación de formularios
Como ya hemos mencionado, la validación de formularios es uno de los usos más frecuentes de onblur. Permite validar campos individuales a medida que el usuario los completa, proporcionando retroalimentación inmediata y mejorando la usabilidad del formulario. Puedes validar formatos de email, longitudes mínimas y máximas de contraseñas, formatos de números de teléfono, y mucho más.
2. Autoguardado de datos
En aplicaciones web que requieren la edición continua de información, como editores de texto en línea o aplicaciones de gestión de proyectos, onblur puede utilizarse para activar el autoguardado de datos. Cada vez que el usuario deja de interactuar con un campo (por ejemplo, un campo de texto en un editor), puedes disparar una función que guarde automáticamente los cambios en la base de datos o en el almacenamiento local.
3. Formateo de datos en tiempo real
Puedes utilizar onblur para formatear automáticamente los datos introducidos por el usuario. Por ejemplo, puedes convertir el texto a mayúsculas o minúsculas, formatear números de teléfono o códigos postales, o aplicar cualquier otro tipo de formateo justo después de que el usuario termine de escribir en un campo.
4. Desactivar o ocultar elementos
En algunos casos, puedes querer desactivar o ocultar ciertos elementos de la interfaz de usuario cuando el usuario deja de interactuar con un campo específico. Por ejemplo, podrías tener un menú desplegable que se cierre automáticamente cuando el usuario hace clic fuera de él, utilizando el evento onblur en el menú desplegable.

5. Realizar llamadas AJAX
Aunque menos común, onblur también se puede utilizar para disparar llamadas AJAX. Por ejemplo, podrías tener un campo de búsqueda que realice una sugerencia de autocompletado cuando el usuario deja de escribir (es decir, cuando el campo de búsqueda pierde el foco). En este caso, el evento onblur podría iniciar una llamada AJAX para obtener sugerencias basadas en el texto introducido hasta el momento.
Preguntas frecuentes (FAQs) sobre el evento onblur
¿Qué elementos HTML pueden usar el atributo onblur?
El atributo onblur se puede usar con elementos de formulario como
<input>,<textarea>,<select>,<button>y otros elementos interactivos como<a>,<div>,<span>, entre otros.¿Cuál es la diferencia entre onblur y onfocus?
El atributo onblur se activa cuando un elemento pierde el foco, mientras que el atributo onfocus se activa cuando un elemento gana el foco (por ejemplo, cuando un usuario hace clic o tabula hacia él). Son eventos opuestos y complementarios.
¿Se puede usar el atributo onblur para validar campos de formulario?
Sí, el atributo onblur se usa comúnmente para realizar la validación de campos de formulario al activar una función de JavaScript para verificar la entrada cuando el usuario sale del campo. Es una práctica recomendada para proporcionar retroalimentación inmediata al usuario.
¿Se puede usar el atributo onblur para activar una llamada AJAX?
Sí, el atributo onblur se puede usar para activar una llamada AJAX llamando a una función de JavaScript que realiza la solicitud AJAX cuando el elemento pierde el foco. Esto puede ser útil para autocompletar sugerencias o guardar datos en segundo plano.
¿El atributo onblur distingue entre mayúsculas y minúsculas?
Si bien los atributos HTML generalmente no distinguen entre mayúsculas y minúsculas, es una buena práctica usar minúsculas (onblur) para garantizar la compatibilidad y la legibilidad del código. Esto sigue las convenciones de HTML estándar.
Conclusión
El evento onblur es una herramienta poderosa y esencial en el desarrollo web con JavaScript. Su capacidad para detectar cuándo un elemento pierde el foco lo convierte en un aliado invaluable para la validación de formularios, el autoguardado de datos, el formateo en tiempo real y muchas otras interacciones del usuario. Comprender cómo utilizar onblur y diferenciarlo de eventos relacionados como onfocus te permitirá crear aplicaciones web más interactivas, usables y eficientes. Integra el evento onblur en tus proyectos y eleva la experiencia de usuario a un nuevo nivel.
