Como remover o foco do campo de entrada no jQuery?

136

Estou definindo o foco em um determinado campo de entrada ao carregar uma página usando a seguinte linha:

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

Existe uma maneira de desfazer ou remover esse foco ao passar o mouse sobre um determinado elemento ? (O foco não precisa ser redefinido depois de sair deste elemento.)

Não consegui encontrar uma função que seja o oposto do acima no jQuery ou, caso contrário, funcionaria aqui.

user2571510
fonte

Respostas:

227

Use .blur () .

O evento de desfoque é enviado para um elemento quando ele perde o foco. Originalmente, esse evento era aplicável apenas a elementos do formulário, como <input>. Nos navegadores recentes, o domínio do evento foi estendido para incluir todos os tipos de elementos. Um elemento pode perder o foco por meio de comandos do teclado, como a tecla Tab, ou por cliques do mouse em outro local da página.

$("#myInputID").blur(); 
Milind Anantwar
fonte
Ok, acho que estou fazendo algo errado aqui ou descrevi isso da maneira errada. O elemento que eu quero usar aqui possui a classe navbar (é uma barra de navegação do Bootstrap 3), então tentei o seguinte, mas isso não funciona: $ ('. Navbar'). On ('mouseover', function () {$ ( '#myInputID'). blur ();});
user2571510
Sim, eu fiz isso. Se isso não funcionar, eu poderia apenas definir o foco na barra de navegação?
user2571510
1
@ user2571510: tente dar um alerta dentro do evento e veja se ele está sendo disparado ou não.
Milind Anantwar
Sim, o alerta é exibido, mas não remove o foco do campo.
user2571510
1
@ user2571510: você tem identificações duplicadas na página? tente usar$("[id=myInputID]").blur();
Milind Anantwar
0

Para toda a caixa de texto:

$(':text').blur()
Mujthaba Ibrahim
fonte
0

$(':text').attr("disabled", "disabled");define toda a caixa de texto para o modo desativado. Você pode fazer de outra maneira, como fornecer a cada ID da caixa de texto. Ao fazer esse código, o peso será maior e o problema de desempenho estará presente.

Então é melhor ter $(':text').attr("disabled", "disabled");abordagem.

Vinayak
fonte
0

Se você tem readonly atributo, o desfoque por si só não funcionaria. A contração abaixo deve fazer o trabalho.

$ ('# myInputID'). removeAttr ('readonly'). trigger ('blur'). attr ('readonly', 'readonly');
Jeffz
fonte