2010-06-30 6 views
18

J'ai une zone de texte dans laquelle je veux exécuter une requête lorsque la zone de texte perd le focus, donc après que l'utilisateur ait cliqué sur la zone de texte.Fonction Jquery lorsqu'une zone de texte perd le focus

J'ai essayé de le faire

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

}); 

mais je reçois une erreur disant que l'objet ne prend pas en charge cette propriété ou méthode.

Comment puis-je faire cela?

+0

Vous avez dit dans les commentaires que c'est 1.4.2, êtes-vous * absolument * sûr? Est-il possible que vous incluiez une ancienne version de jQuery, éventuellement plus bas dans la page? –

+0

Avez-vous importé jQuery dans la page? –

+0

oui je suis sûr que je ne l'importerai qu'une fois sur la page maître et nulle part ailleurs je n'ai pas une version antérieure sur mon système. oui jQuery est importé sur la page. d'autres fonctions telles que le bouton() sont utilisées et fonctionnent très bien. – twal

Répondre

17

focusout a été ajouté dans la v1.4. Trois pensées:

  1. Pourriez-vous utiliser une version antérieure de jQuery?
  2. Votre champ a-t-il vraiment l'ID textbox? Utilisez-vous également Prototype ou MooTools (ou tout autre élément susceptible de prendre le relais $)? Si oui, utilisez le mode noConflict de jQuery et utilisez jQuery au lieu de $.

À part ça, ça devrait fonctionner.

Voici un exemple (en utilisant une alerte que vous avez fait): http://jsfiddle.net/QzmZp/1/
et un autre de ne pas utiliser une alerte (parce que paniqué IE7 out): http://jsfiddle.net/QzmZp/2/
Quelqu'un a demandé plus tôt sur les versions de navigateur, j'ai essayé ci-dessus avec Chrome 5, IE6, IE7 et FF3.6; Tout va bien.

J'ai fait à la fois un input et un textarea parce que je n'étais pas sûr de ce que vous utilisiez.

+0

J'ai juste vérifié. il est 1.4.2 – twal

+0

double vérifié à nouveau mon champ a un ID de textbox j'ai copié et collé au sélecteur juste pour être sûr. et toujours la même chose. Est-ce le fait à la fois sur IE et FF navigateur ne l'affecte pas. – twal

+0

@twal - Avez-vous une autre bibliothèque sur la page, prototype par exemple? –

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

blur est l'événement qui se déclenche quand un élément perd le focus. Découvrez jQuery.blur.

EDIT

Je ne sais pas si c'est ce que vous voulez, mais si vous essayez vraiment d'utiliser focusout départ T. J. Crowder's solution. Cependant, pour votre situation, l'événement blur peut être utile car vous souhaitez détecter la perte de focus sur la zone de texte elle-même. focusout se déclenche lorsqu'un élément ou un élément à l'intérieur cet élément perd le focus.

+0

flou travaillé pour moi merci! Je ne sais pas pourquoi j'obtiens l'erreur sur la mise au point, mais cela fonctionnera. Merci! – twal

+0

'focusout' se déclenche aussi pour la zone de texte, mais * aussi * bulles. –

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

    //your code 

}); 
+2

Essayez de fournir une réponse améliorée. Si vous répondez le même que déjà fait – Sami

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

Pour convertir tous à haut quand textbox ils perdent le focus.

Questions connexes