Vue : construire une application web (école d'ingénieur) · Chapitre 4 · Exercice de TD
Lettre d'information
Formulaires · niveau 2
Énoncé
Un formulaire d'inscription demande un courriel, au moins un rayon parmi quatre (cases à cocher) et l'accord du visiteur. Le bouton « S'inscrire » reste désactivé tant que ces trois conditions ne sont pas remplies ; l'envoi affiche « awa@campus.fr recevra les nouveautés : Informatique, Physique. ». Écrire l'application. Comparer avec le conseil de la section « Valider un formulaire » : dans quel cas un bouton désactivé reste-t-il acceptable ?
Corrigé
<div id="app">
<form novalidate @submit.prevent="envoyer">
<p><label>Courriel <input v-model.trim="courriel" type="email" autocomplete="email"></label></p>
<fieldset>
<legend>Rayons qui vous intéressent</legend>
<label v-for="r in rayons" :key="r"><input v-model="choix" type="checkbox" :value="r"> {{ r }}</label>
</fieldset>
<p><label><input v-model="accord" type="checkbox"> J'accepte de recevoir la lettre</label></p>
<button type="submit" :disabled="!valide">S'inscrire</button>
<p role="status">{{ message }}</p>
</form>
</div>
const { createApp, ref, computed } = Vue;
createApp({
setup() {
const rayons = ["Informatique", "Mathématiques", "Physique", "Littérature"];
const courriel = ref("");
const choix = ref([]);
const accord = ref(false);
const message = ref("");
const valide = computed(() => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(courriel.value)
&& choix.value.length > 0 && accord.value);
function envoyer() {
message.value = `${courriel.value} recevra les nouveautés : ${choix.value.join(", ")}.`;
}
return { rayons, courriel, choix, accord, message, valide, envoyer };
},
}).mount("#app");
L'état du bouton au chargement, après le courriel et deux rayons, puis après l'accord ; enfin, le message après l'envoi :
bouton désactivé : true
bouton désactivé : true
bouton désactivé : false
awa@campus.fr recevra les nouveautés : Informatique, Physique.
Un bouton désactivé est acceptable quand ce qui manque est évident et visible à côté de lui, comme une case d'accord. Pour un formulaire plus long, on laisse cliquer et l'on explique chaque erreur.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.