Quisiera por medio de javascript sacarle el foco a cualquier input si lo tuviera...
if(¿El foco está dentro de un input?)
{
[Eliminar/Sacar foco del input]
}
Se hace invocando al método blur de dicho input:
<input id="campo" value="perdere el focus a los 2 segundos" onfocus="func()"/>
function func(){
setTimeout( function() {
document.getElementById('campo').blur()
}, 2000)
}
Imagino que es mejor usar jquery
pero me refiero a que yo de entrada no se que elemento input tiene foco, simplemente se que el mouse o el cursor está presionado en un input y que se tiene que quitar dicho foco de x input... ¿como lo haría?
creo que como dije antes, con algo de jquery y usar e.blur(); o algo así...
Esta pregunta es muy vieja, estoy seguro que lo pudiste haber encontrado en google en 2 mins...
$('input:focus').blur();
Ojo, no lo vayas a poner en un botón.
Es raro que no sepas a que input aplicarle el evento ... por lo general esto se hace directamente en el mismo input:
<input type="text" class="nofocus" onclick="this.blur()">
- Así es menos costoso, y sirve para inputs específicos. Pero si no sabes a que input, puedes pulir la idea de MinusFour considerando que (al menos a mi entender) para darle eventos a un objeto que aún no existe como es el caso de un input:focus, hay que Bind-ear el evento. Además también puedes afinar tu tipo de input así (en este caso type=text):
jQuery:
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<input type="text">
<input type="password">
<input type="button" value="Enviar">
<script>
$('input[type=text]').bind('focus', function(){
$(this).blur()
})
</script>
Si tus input ya están creados bastaría con:
$('input[type=text]').focus(function(){
$(this).blur()
})
javascript puro y duro:
document.querySelector('input[type=text]').onfocus = function(){
event.target.blur()
}
- Recuerda que si vas a encadenar funciones a un solo tipo de evento tienes que usar addEventListener