17 - Evento focus. |
El evento focus se produce cuando se activa el control. Podemos capturar el evento focus de un control de tipo text, textarea, button, checkbox, fileupload, password, radio, reset y submit.
Es común a muchos sitio donde se puede buscar información,disponer un control de tipo text con la leyenda 'Buscar...' y sin ningún botón a su lado. Cuando el control toma foco se borra automáticamente su contenido, el operador ingresa el texto a buscar y presiona la tecla ENTER.Para probar como capturar este evento implementaremos una página que resuelva el problema anteriormente planteado.
pagina1.html
<!DOCTYPE html> <html> <head> <title>Ejemplo de jQuery</title> <meta charset="UTF-8"> </head> <body> <form action="#" method="post"> <input type="text" name="buscar" id="buscar" value="Buscar..." size="20"> </form> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script src="funciones.js"></script> </body> </html>
funciones.js
let x = $(document); x.ready(inicializarEventos); function inicializarEventos() { let x = $("#buscar"); x.focus(tomaFoco); } function tomaFoco() { let x = $("#buscar"); x.attr("value", ""); }
En la función inicializarEventos creamos un objeto jQuery a partir del id del control de tipo text y asociamos el evento focus con el método tomaFoco:
let x = $("#buscar"); x.focus(tomaFoco);
El método tomaFoco obtiene la referencia del elemento tipo text y mediante el método attr modifica la propiedad value:
function tomaFoco() { let x = $("#buscar"); x.attr("value", ""); }