2010-06-30 44 views
18

Tengo un cuadro de texto que quiero ejecutar un poco de jquery cuando el cuadro de texto pierde el foco, por lo que después de que el usuario hace clic fuera del cuadro de texto.Función de Jquery cuando un cuadro de texto pierde el foco

he tratado de hacer esto

$("#textbox").focusout(function() { 
    alert("hello"); 

}); 

pero me da un error diciendo objeto no admite esta propiedad o método.

¿Cómo puedo hacer esto entonces?

+0

Has dicho en los comentarios que es 1.4.2, ¿estás * absolutamente * seguro? ¿Es posible que incluya una versión anterior de jQuery, posiblemente más abajo en la página? –

+0

¿Ha importado jQuery a la página? –

+0

sí, estoy seguro de que solo lo importo una vez en la página maestra y en ningún otro lugar no tengo una versión anterior en mi sistema. sí jQuery se importa a la página. otras funciones como el botón() se están utilizando y funcionan bien. – twal

Respuesta

17

focusout se añadió en v1.4. Tres pensamientos:

  1. ¿Podría estar usando una versión anterior de jQuery?
  2. ¿Su campo realmente tiene el id textbox?
  3. ¿También está usando Prototype o MooTools (o cualquier otra cosa que pueda estar tomando el control $)? Si es así, use el modo noConflict de jQuery y use jQuery en lugar de $.

Aparte de eso, debería (funciona) funcionar.

He aquí un ejemplo (usando una alerta como lo hizo): http://jsfiddle.net/QzmZp/1/
y otro no usar una alerta (debido a que asustó IE7 salir): http://jsfiddle.net/QzmZp/2/
Alguien anteriormente preguntó acerca de las versiones del navegador, lo he intentado lo anterior con Chrome 5, IE6, IE7 y FF3.6; todo muy bien.

Hice un input y un textarea porque no estaba seguro de lo que estaba usando.

+0

acabo de comprobar doble. es 1.4.2 – twal

+0

comprobado nuevamente mi campo tiene una identificación del cuadro de texto que copié y lo pegué en el selector solo para estar seguro. y aún lo mismo. ¿Lo hace tanto en IE como en FF? El navegador no lo afecta. – twal

+0

@twal - ¿Tiene otra biblioteca en la página, prototipo, por ejemplo? –

9
jQuery("#textbox").blur(function() { 
    alert("hello"); 
}); 

blur es el evento que se activa cuando un elemento pierde el foco. Consulte jQuery.blur.

EDITAR

No estoy seguro si esto es lo que quiere, pero si usted está realmente tratando de utilizar focusout la salida T. J. Crowder's solution. Para su situación, sin embargo, es posible que desee el evento blur que necesita ya que desea detectar la pérdida de foco en el cuadro de texto. focusout se dispara cuando un elemento 0 cualquier elemento dentro de ese elemento pierde el foco.

+0

blur funcionó para mí ¡gracias! No estoy seguro de por qué recibo el error de enfoque, pero esto funcionará. ¡Gracias! – twal

+0

'focusout' dispara también para el cuadro de texto, * también * burbujas. –

5
$("#idOfTextField").blur(function(){ 

    //your code 

}); 
+2

Trate de proporcionar una respuesta mejorada. Si está respondiendo lo mismo que ya está hecho – Sami

1
$(document).ready(function() { 
     ////////////////////////ALL textbox to upper 
     $("input[type=text]").blur(function() { 
      $(this).val($(this).val().toUpperCase()); 
     }); 
    }); 

para convertir todos los cuadro de texto al superior cuando pierden el foco.

Cuestiones relacionadas