¿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í.

usuario2571510
fuente

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(); 
Milind Anantwar
fuente
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

Para todos los cuadros de texto:

$(':text').blur()
Mujthaba Ibrahim
fuente
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.

Vinayak
fuente
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');
Jeffz
fuente