¿Existe un método de desenfoque jQuery?


193

¿Cómo puedo desenfocar un área de texto o una entrada? No pude encontrar un $('#my-textarea').unfocus();método?


tampoco es la función jQuery .focusout()que es ligeramente diferente de blur() api.jquery.com/focusout , citando el documentoThis is distinct from the blur event in that it supports detecting the loss of focus on descendant elements (in other words, it supports event bubbling)
Adrien Be

Respuestas:


335
$('#textarea').blur()

Documentación en: http://api.jquery.com/blur/


Extraño. Estoy tratando de desenfocar () antes de que la ventana pierda el foco para que cuando regrese, el área de texto no esté seleccionada por defecto. Parece que no funciona :(
Alec Smart

algo así como $ ('ventana'). blur (function () {$ ('# textarea'). blur ();});
Alec Smart

¿quizás necesites desenfocar el área de texto en el foco de la ventana entonces?
Geoff

77
es posible que esté intentando vincular el evento antes de que se cargue el DOM. Intente poner el código en el controlador listo de la página de esta manera: $ (documento) .ready (function () {$ ('# textarea'). Blur ()})

funciona muy bien $('#textarea').bind('blur', function() ...)también
Fedir RYKHTIK

10

Según su pregunta, creo que la respuesta es cómo activar un desenfoque , no solo (o incluso) configurar el evento:

 $('#textArea').trigger('blur');

Esta respuesta tenía más sentido para mí. Quería saber cómo dejar de resaltar o hacer que mi entrada de texto fuera de foco. Sabía que .blur () existía pero realmente no entendía la sintaxis correcta para este uso. +1
Partack

77
Sin parámetros, .blur()es un acceso directo para .trigger("blur") api.jquery.com/blur
andreszs

7

Supongo que estás buscando .focusout()


10
-1 focusoutse dispara solo después de que una entrada ya ha comenzado a perder el foco. El interlocutor quiere poner un elemento en ese estado, por lo que un controlador de devolución de llamada no le servirá de nada developer.mozilla.org/en-US/docs/Web/Reference/Events/focusout api.jquery.com/focusout
buley

Estaba buscando este método y este fue el primer resultado de Google para "jquery select unfocus"
máquina anhelando el

0

Esto funciona para mi:

// Document click blurer
$(document).on('mousedown', '*:not(input,textarea)', function() {
    try {
        var $a = $(document.activeElement).prop("disabled", true);
        setTimeout(function() {
            $a.prop("disabled", false);
        });
    } catch (ex) {}
});

0

Me gusta el siguiente enfoque, ya que funciona para todas las situaciones:

$(':focus').blur();

-12

Entonces puedes hacer esto

$('#textarea').attr('enable',false)

pruébalo y da tu opinión


11
Deshabilitará el área de texto, no lo desenfocará.
Kurotsuki el
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.