Comment obtenir div événement onblur pour exécuter une fonction javascript?
Hi
J'ai un div qui contient trois zones de texte , j'ai besoin d'une fonction qui doit être appelée une fois que le contrôle est en dehors de la balise div, je ne veux pas utiliser l'événement onclick parce que la mise au point peut être déplacé hors de la div en appuyant sur la touche tab du clavier ou d'une autre façon.
Je voudrais aussi savoir si il existe un moyen de réaliser cela à l'aide de toutes les bibliothèques javascript comme jquery.
Merci, c'est l'exemple de code html
<html>
<head>
<title>Div Onblur test</title>
<script type="text/javascript">
function Callme() {
alert("I am Called")
}
</script>
</head>
<body>
<div onblur="javascript:Callme();">
<input type=text value ="Inside DIV 1" />
<input type=text value ="Inside DIV 2" />
<input type=text value ="Inside DIV 3" />
</div>
<input type=text value ="Outside DIV" />
</body>
</html>
Vous devez vous connecter pour publier un commentaire.
Vous pouvez lier l'événement onblur gestionnaire de chacun des éléments d'entrée et de vérifier dans le gestionnaire si l'un d'eux a le focus (à l'aide de document.activeElement).
Ou, plutôt, à l'aide de jQuery pourrait simplifier le processus (surtout si vous avez beaucoup d'entrées):
EDIT: j'ai enveloppé les gestionnaires d'événements à l'intérieur d'un
setTimeout
pour s'assurer que l'autre élément a eu le temps de se concentrer.Vous aurez besoin d'ajouter tabindex=0 à la div pour obtenir le focus.
Donc, quelque chose comme
devrait le faire.
J'ai utilisé le suivant script jQuery dans un scénario similaire avec 3 zones de texte à l'intérieur d'un div:
Peut-être un "onChange" événement permettrait de mieux répondre à vos besoins. Je ne peux pas penser à une situation où la DIV serait cliqué, et non pas les champs de saisie.