Exercice — dans l'esprit des sujets du bac
Page reservation.html d’une salle de conférences (contexte autonome). Formulaire name="fr" déjà écrit avec :
- input texte name="codeSalle" (4 chiffres),
- input texte name="nbPlaces" (entier > 0),
- select name="creneau" (options non présélectionnées),
- onsubmit="return verifResa()".
- Dans le fichier externe
controles.js, écrire la fonction JavaScriptverifResa()qui :
1. refuse un code salle non numérique ou de longueur ≠ 4 ;
2. refuse un nombre de places non numérique ou ≤ 0 ;
3. refuse un créneau non choisi (selectedIndex == -1) ;
4. pour chaque erreur :alertd’un message clair puisreturn false. - Pourquoi
return falseest-il indispensable après l’alert?
Voir la correction commentéeAprès avoir posé votre démarche
Validation JavaScript (syntaxe d’examen, fichier controles.js) :
function verifResa()
{
var ch1 = document.fr.codeSalle.value;
var ch2 = document.fr.nbPlaces.value;
var ch3 = document.fr.creneau;
if ((isNaN(ch1)) || (ch1.length != 4))
{
alert("le code salle doit etre un nombre de quatre chiffres");
return false;
}
if ((isNaN(ch2)) || (ch2 <= 0))
{
alert("le nombre de places doit etre un entier strictement positif");
return false;
}
if (ch3.selectedIndex == -1)
{
alert("vous devez choisir un creneau");
return false;
}
}
Rôle de return false. L’événement onsubmit="return verifResa()" n’annule l’envoi que si la fonction renvoie false. Un alert seul laisse le navigateur soumettre le formulaire vers le script PHP.
Remarque. selectedIndex se lit sur l'élément select lui-même (document.fr.creneau.selectedIndex), pas sur sa collection options. Le style non strict (var, messages sans accents) est celui des sujets du bac, pas un guide de style moderne.