Le navigateur reconnait un ensemble d'événements associés à des balises, des liens et des composants de formulaires. Par programmation, on peut leur associer des fonctions particulières appelées gestionnaires d'événements appelée systématiquement lorsque ces événements sont provoqués.
Un gestionnaire d'événement est une procédure particulière attachée à une balise HTML,
onClick
)
click
sur un composant de type button
)
<HEAD> <SCRIPT>...</SCRIPT> </HEAD>
Gest. événement | provoqué par l'utilisateur qui ... | sur les objets ... |
---|---|---|
onBlur | enlève le focus du composant | text, textarea, select |
onChange | change la valeur d'un texte ou d'un composant à options | text, textarea, select |
onClick | clique sur un composant ou un hyperlien | button, checkbox, radio, reset, submit |
onFocus | donne le focus au composant | text, textarea, select |
onLoad | charge la page dans le navigateur | balises BODY, FRAMESET |
onMouseOut | la souris quitte un lien ou une ancre | balises <A HREF..>, <AREA HREF..> |
onMouseOver | bouge la souris sur un lien ou une ancre | balises <A HREF..>, <AREA HREF..> |
onReset | efface les saisies d'un formulaire | bouton reset |
onSelect | sélectionne une zone d'édition d'un formulaire | text, textarea |
onSubmit | soumet un formulaire | bouton submit |
onUnload | quitte la page | balises BODY, FRAMESET |
<FORM NAME="Questions"> <INPUT TYPE="text" NAME="classe" VALUE="" SIZE=10> ; </FORM>
<FORM NAME="F"> <SELECT NAME="liste" onChange='F.resultat.value+=F.liste.options[F.liste.selectedIndex].value' > ; <OPTION VALUE="matin ... " >Matin <OPTION VALUE="midi ... ">Midi <OPTION VALUE="soir ... ">Soir </SELECT> <INPUT TYPE=TEXTE SIZE=40 NAME="resultat" VALUE="Vous avez sélectionné : " > </FORM> |
iste
situé dans le formulaire F
.
<FORM NAME="F"> <INPUT TYPE="RADIO" NAME="choix" value="sup. à 10" CHECKED onClick='F.resultat.value=this.value'>plus de 10 <INPUT TYPE="RADIO" NAME="choix" value="entre 8 et 10" onClick='F.resultat.value=this.value'>entre 8 et 10 <INPUT TYPE="RADIO" NAME="choix" value="inf. à 8" onClick='F.resultat.value=this.value'>moins de 8 <INPUT TYPE=TEXTE SIZE=15 NAME="resultat" VALUE="" > </FORM> |
choix
submit
, une fonction programmée en réaction au gestionnaire de l'événement onSubmit
peut analyser ses choix et y répondre.onClick()
Examiner en détail cette annexe. Exécuter plusieurs fois et parallèlement étudier le code JS.
Comprendre comment on peut effectuer des traitements à partir des choix de l'utilisateur.
Traitement d'un questionnaire (exemple-evenement.html) |
<FORM ACTION="mailto:nom destinataire@nom serveur" METHOD="POST"> .................. <INPUT TYPE="SUBMIT" VALUE="Envoyer" <INPUT TYPE="RESET" VALUE="Effacer" </FORM> |
Ici, on détourne les hyperliens correspondant aux zones de l'image cliquable de façon à ce qu'un clic dans une zone appelle une fonction.
Pour cela, on n'affecte pas d'URL à l'attribut HREF de la balise <AREA>.
A la place, on affecte un appel d'une fonction (déjà déclarée) aux gestionnaires d'événements onMouseOver ou onMouseOut pour réagir au passage de la souris sur chacune des zones.
<MAP NAME="mon_image"> <AREA HREF="" SHAPE="poly" COORDS="x,y,..." onMouseOver="fct1()" > <AREA HREF="" SHAPE="circle" COORDS="x,y,..."onMouseOver="fct2()" > .......................................... </MAP> .......................................... <IMG SRC="fichier image.gif" USEMAP="#mon_image"> |
Dans l'exemple ci-dessous le passage de la souris sur la zone France de la carte, génére un événement onMouseOver
qui provoque l'appel de la fonction affiche(France)
, tandis que le fait de quitter cette même zone associé à l'événement onMouseOut
provoque l'appel de affiche(efface)
.
<AREA COORDS="23,213,48,206,79,202,95,220,115,230,96,254, 102,260,99,281,104,285,88,293,77,284,65,293,30,272,42,245,23,213" SHAPE="poly" HREF="" onMouseOver="affiche(France)" onMouseOut="affiche(efface)"> |
Exemple (référence : JavaScript, Michel Dreyfus, édition Sybex)