¿Cómo eliminar el foco del campo de entrada en jQuery?


136

Estoy configurando el foco en un determinado campo de entrada al cargar una página usando la siguiente línea:

$('#myInputID').focus();

¿Hay alguna manera de deshacer o eliminar este enfoque al pasar el mouse sobre un elemento determinado ? (No es necesario restablecer el foco después de abandonar este elemento).

No pude encontrar una función que sea la opuesta a la anterior en jQuery o que de lo contrario funcionaría aquí.

Respuestas:


227

Usa .blur () .

El evento de desenfoque se envía a un elemento cuando pierde el foco. Originalmente, este evento solo era aplicable a elementos de formulario, como <input>. En navegadores recientes, el dominio del evento se ha extendido para incluir todos los tipos de elementos. Un elemento puede perder el foco a través de los comandos del teclado, como la tecla Tab, o al hacer clic con el mouse en otra parte de la página.

$("#myInputID").blur(); 

Ok, entonces creo que estoy haciendo algo mal aquí o lo describí de manera incorrecta. El elemento que quiero usar aquí tiene la barra de navegación de clase (es una barra de navegación Bootstrap 3), así que probé lo siguiente, pero esto no funciona: $ ('. Navbar'). On ('mouseover', function () {$ ( '#myInputID'). blur ();});
user2571510

Si, hice eso. Si esto no funciona, ¿podría establecer el foco en la barra de navegación?
user2571510

1
@ user2571510: intente dar una alerta dentro del evento y ver si se dispara o no.
Milind Anantwar

Sí, la alerta se muestra pero no elimina el foco del campo.
user2571510

1
@ user2571510: ¿tiene identificadores duplicados en la página? intente usar$("[id=myInputID]").blur();
Milind Anantwar



0

$(':text').attr("disabled", "disabled");establece todos los cuadros de texto en modo deshabilitado. Puede hacerlo de otra manera, como dar cada ID de cuadro de texto. Al hacer esto, el peso del código será mayor y el problema de rendimiento estará allí.

Así que mejor tener $(':text').attr("disabled", "disabled");enfoque.


0

Si tiene un readonlyatributo, el desenfoque por sí solo no funcionaría. El siguiente artilugio debería hacer el trabajo.

$ ('# myInputID'). removeAttr ('readonly'). trigger ('blur'). attr ('readonly', 'readonly');
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.