5. La gestion des événements en HTML
Transcription
5. La gestion des événements en HTML
420-183 Programmation 1 5. La gestion des événements en HTML Les événements Afin de pouvoir utiliser les formulaires HTML comme interface utilisateur pour notre programmation JavaScript, nous devons utiliser le traitement des événements. Un événement est quelque chose qui se produit. Que peut-il se produire lorsqu'un utilisateur utilise un ordinateur? S'il clique avec la souris, c'est un événement. S'il presse une clé du clavier, c'est un événement. S'il choisit un élément d'un menu, c'est un événement. On dit que l'environnement Windows fonctionne par événements. C'est que Windows attend sans cesse que se produise un événement, et lorsque c'est le cas, il réagit en traitant cet événement. Faire de la programmation, sous Windows, consiste donc à prévoir quelles actions seront effectuées lorsque tel ou tel événement se produira. Si notre formulaire HTML contient deux boutons, un sur lequel est inscrit «Valider» et un sur lequel est inscrit «Annuler», nous devrons programmer les instructions qui devront être exécutées dans le cas où chacun de ces deux boutons sera cliqué. En JavaScript, nous devrons programmer deux fonctions et nous devrons spécifier que lorsque l'événement «clic sur le bouton Valider» se produit, c'est la première fonction qui est exécutée, alors que si c'est l'événement «clic sur le bouton Annuler» qui se produit, alors c'est la deuxième fonction qui sera exécutée. Différents événements pourront être traités dans un formulaire HTML: onClick onLoad onUnload onFocus onChange onSelect Session A-2008 Lorsqu'un clic est effectué, par exemple sur un bouton. Lorsque la page est initialement affichée. Lorsque l'on quitte cette page web (en cliquant sur un hyperlien, par exemple). Lorsque le curseur arrive dans un champ ou sur un bouton, par exemple, avec la touche «Tab» du clavier. Lorsque le contenu d'un champ ou d'une liste déroulante est modifié. Lorsqu'un élément d'une liste déroulante est sélectionné, par exemple. © 2008, Marc-Gabriel Vallières page 5-1 La définition d'un script et des fonctions JavaScript La programmation en langage JavaScript qui servira à définir les traitements des événements pouvant se produire dans notre formulaire doit être incluse dans le fichier HTML, mais ne doit pas être affichée sur la page. Nous l'inclurons donc dans la section de l'entête (<head>...</head>) et nous l'encadrerons par les balises <script> et </script>. <html> <head> <title>Mon formulaire</title> <script language="JavaScript"> Programmation JavaScript... </script> </head> <body> <form name="Form1"> Contenu du formulaire... </form> </body> </html> Pour chaque événement différent, nous devrons écrire une fonction en JavaScript, et nous devrons spécifier que cette fonction sera exécutée lorsque l'événement se produit. Si notre formulaire contient un bouton «Valider», nous spécifierons le paramètre onClick dans la définition du bouton et nous définirons la fonction appropriée dans l'entête: <html> <head> <title>Mon formulaire</title> <script language="JavaScript"> function traiterBouton() { instructions JavaScript à exécuter } </script> </head> <body> <form name="Form1"> ... <input type="button" value="Valider" onClick="JavaScript:traiterBouton();"> ... </form> </body> </html> Session A-2008 © 2008, Marc-Gabriel Vallières page 5-2 L'instruction alert Afin de pouvoir tester, nous utiliserons une instruction JavaScript simple, qui permet d'ouvrir une petite fenêtre et d'afficher un message, l'instruction alert. Dans la page web suivante, une première fenêtre s'ouvre lorsque la page est affichée une première fois, et une seconde fenêtre s'ouvre lorsque l'utilisateur clique sur le bouton du formulaire: <html> <head> <title>Mon formulaire</title> <script language="JavaScript"> function chargement() { alert("La page vient de s'afficher!"); } function traiterBouton() { alert("Vous avez cliqué sur le bouton!"); } </script> </head> <body onLoad="JavaScript:chargement();"> <form name="Form1"> <input type="button" value="Valider" onClick="JavaScript:traiterBouton();"> </form> </body> </html> Session A-2008 © 2008, Marc-Gabriel Vallières page 5-3