Académique Documents
Professionnel Documents
Culture Documents
JavaScript
Les évènements sont des actions qui se produisent et auxquelles on va pouvoir répondre en
exécutant un code. Par exemple, on va pouvoir afficher ou cacher du texte suite à un clic d’un
utilisateur sur un élément, on change la taille d’un texte lors du passage de la souris d’un
utilisateur sur un élément.
1
Aujourd’hui, en JavaScript, il existe trois grandes façons d’implémenter un gestionnaire
d’évènements :
2
Avec cette méthode, chaque objet ne possède qu’une propriété gestionnaire d’évènements
pour un même type d’évènements. On ne va pas pouvoir réagir plusieurs fois de façons
différentes à un même évènement à partir d’un même élément.
Exemple :
<body>
<button> Cliquez sur moi ! </button>
<p> paragraphe </p>
<script>
let b = document.querySelector ('button') ;
let p = document.querySelector ('p') ;
b.addEventListener('click', function(){alert('Bouton cliqué')});
p.addEventListener('mouseover',
function(){this.style.backgroundColor ='orange'});
p.addEventListener('mouseover', function(){this.style.fontWeight
='bold'});
p.addEventListener('mouseout',
function(){this.style.backgroundColor='white'});
</script>
</body>
Syntaxe :
element. removeEventListener(nomEve, nomFonction) ;
Exemple :
<body>
<button> Cliquez sur moi ! </button>
<p> paragraphe </p>
<script>
function changeCouleur(){
this.style.backgroundColor ='orange';
}
3
let b = document.querySelector ('button') ;
let p = document.querySelector ('p') ;
// quand on clique sur le bouton, on supprime l’évènement mouseover
// qui change la couleur du background du paragraphe
b.addEventListener('click', function(){alert('Bouton cliqué') ;
p.removeEventListener('mouseover', changeCouleur) ;});
p.addEventListener('mouseover',changeCouleur) ;
p.addEventListener('mouseover', function(){this.style.fontWeight
='bold'});
p.addEventListener('mouseout',
function(){this.style.backgroundColor='white'});
</script>
</body>
3. Les formulaires
Avec JavaScript, on peut accéder à chaque élément d'un formulaire pour, par exemple, y aller
lire ou écrire une valeur, noter un choix auquel on pourra associer un gestionnaire
d'événement... Tous ces éléments renforceront grandement les capacités interactives des
pages web.
Propriété Description
name indique le nom du contrôle par lequel on pourra accéder.
defaultvalue indique la valeur par défaut qui sera affichée dans la zone de
texte.
value indique la valeur en cours de la zone de texte.
<FORM NAME="Questions">
<INPUT TYPE="text" NAME="classe" VALUE="">
</FORM>
• Le texte entré par l'utilisateur est affecté à la propriété value du composant classe situé
dans le formulaire Questions placé dans le document courant appelé document (par
défaut).
• De l'intérieur de ce document, le contenu du champ de texte est donc "visible" et
accessible par son nom complet : document.Questions.classe.value
• En particulier, il peut être récupéré et affecté à une variable MaClasse par l'expression:
MaClasse = document.Questions.classe.value
La référence Questions.classe.value est suffisante car la portée du formulaire
Questions est le document où il est inséré.
• Les formulaires dans un même document sont stockés dans un tableau appelé forms;
le premier formulaire est alors noté forms[0], le deuxième est forms[1] etc.. Si
4
Questions est situé en position de premier formulaire, on peut remplacer l'affectation
précédente par : MaClasse = document.forms[0].classe.value
<FORM NAME="Questions">
<INPUT TYPE="RADIO" NAME="choix" value="sup. à 10" CHECKED
onClick='Questions.resultat.value=this.value'>plus de 10
5
Le traitement est complètement semblable au cas des boutons radio, à la différence que
chaque case possède un nom propre distinct des autres. L'état checked de chaque case doit
donc être testé individuellement.
Propriété Description
<FORM NAME="Questions">
<SELECT NAME="liste"
onChange=' Questions.resultat.value+=
Questions.liste.options[Questions.liste.selectedIndex].value' > ;
<OPTION VALUE="matin ... " >Matin
<OPTION VALUE="midi ... ">Midi
<OPTION VALUE="soir ... ">Soir
</SELECT>
<INPUT TYPE=TEXTE NAME="resultat" VALUE="Vous avez sélectionné : " >
</FORM>
• selectedIndex est une propriété dont la valeur est le numéro de l'élément sélectionné
dans la liste var num = Questions.liste.selectedIndex ---> num est le numéro de
l'élément sélectionné dans le composant liste situé dans le formulaire F.
• options[]est le tableau prédéfini contenant les objets de la liste
• Questions.liste.options[num] est l'objet champ situé au N° num (rappel : le 1er a le
numéro 0)
• Questions.liste.options[num].value est la valeur de l'option N° num de la liste.
• Questions.liste.options[num].text est le texte suivant le champ <OPTION>.