J'écris un script de validation de formulaire et je souhaite valider un champ donné lorsque son événement onblur se déclenche. Je voudrais également utiliser le bouillonnement d'événements afin que je ne doive pas attacher un événement onblur à chaque champ de formulaire individuel. Malheureusement, l'événement onblur ne fait pas de bulles. Je me demande simplement si quelqu'un connaît une solution élégante qui peut produire le même effet.Bulbillage d'événements et événement onblur
Répondre
PPK a une technique pour cela, y compris les solutions de contournement nécessaires pour IE: http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html
aa, vous pouvez simplement ajouter l'événement onblur sur la forme, et appellera la validation à chaque fois que vous changez de mise au point sur l'un des éléments à l'intérieur
êtes-vous sûr? Je n'aurais pas pensé que la forme flouterait du tout, d'autant plus qu'elle ne peut pas être mise au point en premier lieu. – nickf
Comme je l'ai dit dans ma question, l'événement onblur ne fait pas de bulles. S'il vous plaît, lisez la question complètement avant de cracher une réponse. – spudly
Vous allez avoir besoin d'utiliser capture d'événements (par opposition à un barbotage) pour les navigateurs conformes aux normes et focusout
pour IE:
if (myForm.addEventListener) {
// Standards browsers can use event Capturing. NOTE: capturing
// is triggered by virtue of setting the last parameter to true
myForm.addEventListener('blur', validationFunction, true);
}
else {
// IE can use its proprietary focusout event, which
// bubbles in the way you wish blur to:
myForm.onfocusout = validationFunction;
}
// And of course detect the element that blurred in your handler:
function validationFunction(e) {
var target = e ? e.target : window.event.srcElement;
// ...
}
Voir http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html pour la jouei cy détails
utilisation événement 'focusOut' comme il a bouillonner effect..thanks.
Pour utiliser bouillonnant avec l'événement onblur
, vous pouvez ensuite utiliser addEventListener() et définissez le paramètre useCapture à faux. Comme ceci:
yourFormInput.addEventListener('blur', yourFunction, false);
Firefox 51 et ci-dessous ne prennent pas en charge l'événement onfocusout
. N'utilisez donc pas onfocusout
au lieu de onblur
.
- 1. Menu Javascript OnBlur Numéro
- 2. Div onblur événement appelé lorsque vous cliquez sur checkbox à l'intérieur div div
- 3. Puis-je effectuer une vérification de date sur un TextBox avec un événement onBlur?
- 4. onfocus & onblur ne fonctionne pas dans IE
- 5. Déclenchement d'un POST Ajax sur l'événement onblur()
- 6. masquer le menu contextuel de l'événement onblur dans jquery
- 7. YUI Événement et liens
- 8. WPF et événement routé
- 9. Événement Scroll DataGridView (et ScrollEventType.EndScroll)
- 10. WCF - Rappel et/ou événement
- 11. Script Flex et événement Question
- 12. lient événement Jquery/crochets unbind et lib
- 13. Réponse lente entre RewritePath et Page_Load Événement
- 14. Popups à fermeture automatique dans IE - comment obtenir un comportement onBlur correct?
- 15. Faire l'événement onMouseDown se déclenche uniquement après l'événement OnBlur est déclenché
- 16. champ événement
- 17. Événement + gestionnaire
- 18. Attendre x millisecondes après un événement, revérifier et déclencher
- 19. ASP.NET C# événement OnMouseOver pour faire apparaître ListBox et disparaître
- 20. Actionscript 3 et MXML ... bloquer en attendant un événement
- 21. Jquery comment ajouter et supprimer un événement de clic div
- 22. Ajout, suppression et ajout d'élément supprime à nouveau son événement
- 23. JQuery - emplacement de l'URL et événement de clic
- 24. Événement côté serveur entre Silverlight et la page hôte .aspx
- 25. Stockez et invoquez un événement (VB.NET .NET 2.0)
- 26. Flex3, Cliquez et événement de capture, cas particulier
- 27. Réutilisation d'un onglet dans Firefox, événement TabOpen et au-delà
- 28. méthode link_to et cliquez sur événement dans Rails
- 29. comment gérer un événement sur un événement Django Calendrier
- 30. Dois-je utiliser ondeactivate ou onblur lorsque vous quittez une zone de saisie?
chaque champ de formulaire a une fonction de validation différente ou est-ce la même chose pour tous les champs? – Peter
ils utilisent tous la même fonction de rappel. la fonction de rappel recherche certaines classes sur l'élément html qui lui indiquent comment valider (comme "required" ou "integer") – spudly