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 JavaScript `verifResa()` 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 : `alert` d’un message clair puis `return false`. - Pourquoi `return false` est-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`) :
```javascript
function verifResa()
{
var ch1 = document.fr.codeSalle.value;
var ch2 = document.fr.nbPlaces.value;
var ch3 = document.fr.creneau.options;
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.
Legacy. Style non strict (`var` optionnel, messages sans accents comme dans le corrigé Helali) = fidélité au corrigé d’examen, pas un guide de style ES202x.