Travaux Pratiques - Formulaires☘
Dans ce TP, les différentes parties sont indépendantes.
Enregistrez chaque fichier dans le répertoire [D05_Formulaire]
.
TP D05.51☘
-
Téléchargez chacun des trois fichiers ci-dessous et sauvegardez-les dans le répertoire de travail.
-
Fichier HTML
tp_D05.51.html
.Contenu du fichier HTM
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title> Formulaire sur les entiers </title> <!-- Lien vers le CSS --> <link href="tp_D05.51.css" rel="stylesheet" type="text/css" /> <!-- Lien vers le Javascript --> <script src="tp_D05.51.js" charset="utf-8" defer="defer"></script> </head> <body> <form> <label for="entier">Entrez un entier:</label> <input type="number" id="entier" step="1"/> </form> <div id="reponse"> Ici la réponse Javascript lors d'une modification de la valeur dans le champ input. </div> </body> </html>
-
Fichier CSS
tp_D05.51.css
.Contenu du fichier CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
html{ font-size: 20px; } body{ width: 80%; margin: 2rem auto; } form{ margin: 1rem; padding: 1rem; border: 5px ridge purple; text-align: center; } div{ margin: 1rem; }
-
Fichier JavaScript
tp_D05.51.js
.Contenu du fichier JS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/* déclaration d'une variable ciblant un élément html */ let entree = document.querySelector("#entier"); /* variable lié à l'élément div */ let reponse = document.querySelector("#reponse"); /* On "écoute" l'événement change sur l'élément input */ /* L'action sera déclenchée lors d'une modification de la valeur dans le champ input */ entree.addEventListener("change", () => { // on récupère la valeur de l'entier entré par l'utilisateur : let entier = entree.value; if (entier%2 == 0) { //on modifie le contenu html du div en conséquence: reponse.innerHTML = `L'entier ${entier} est pair.` } else { //on modifie le contenu html du div en conséquence: reponse.innerHTML = `L'entier ${entier} est impair.` } } , false);
-
-
Ouvrez le fichier HTML avec un navigateur comme Firefox puis testez le formulaire.
Affichages à observer
Page d'origine :
On entre l'entier 5 et on clique en-dehors du formulaire :
Et pour l'entier 6 :
-
Modifiez le code JavaScript pour qu'il affiche suivant les cas :
- "L'entier est multiple de 3" ;
- "L'entier est multiple de 4" ;
- "L'entier est multiple de 3 et de 4" ;
- "L'entier n'est mutiple ni de 3, ni de 4".
Une solution possible
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
/* déclaration d'une variable ciblant un élément html */ let entree = document.querySelector("#entier"); /* variable lié à l'élément div */ let reponse = document.querySelector("#reponse"); /* On "écoute" l'événement change sur l'élément input */ /* L'action sera déclenchée lors d'une modification de la valeur dans le champ input */ entree.addEventListener("change", () => { // on récupère la valeur de l'entier entré par l'utilisateur : let entier = entree.value; if(entier%3 == 0) { if(entier%4 == 0) { reponse.innerHTML = `L'entier ${entier} est multiple de 3 et de 4.`; } else { reponse.innerHTML = `L'entier ${entier} est multiple de 3 (mais pas de 4).`; } } else { if (entier%4 == 0) { reponse.innerHTML = `L'entier ${entier} est multiple de 4 (mais pas de 3).`; } else { reponse.innerHTML = `L'entier ${entier} n'est multiple ni de 3, ni de 4.`; } } } , false);
TP D05.52☘
-
Téléchargez chacun des trois fichiers ci-dessous et sauvegardez-les dans le répertoire de travail.
-
Fichier HTML
tp_D05.52.html
.Contenu du fichier HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title> Formulaire sur les textes </title> <!-- Lien vers le CSS --> <link href="tp_D05.52.css" rel="stylesheet" type="text/css" /> <!-- Lien vers le Javascript --> <script src="tp_D05.52.js" charset="utf-8" defer="defer"></script> </head> <body> <form> <label for="mot">Entrez un mot:</label> <input type="text" id="mot" minlength="1" value="a"/> </form> <div id="reponse"> Ici la réponse Javascript lors d'une modification de la valeur dans le champ input. </div> </body> </html>
-
Fichier CSS
tp_D05.52.css
.Contenu du fichier CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
html{ font-size: 20px; } body{ width: 80%; margin: 2rem auto; } form{ margin: 1rem; padding: 1rem; border: 5px ridge purple; text-align: center; } div{ margin: 1rem; }
-
Fichier JavaScript
tp_D05.52.js
.Contenu du fichier JS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
let entree = document.querySelector("#mot"); let reponse = document.querySelector("#reponse"); entree.addEventListener("change", () => { // on récupère le mot entré par l'utilisateur: let mot = entree.value; // on compte le nombre de lettres e du mot: let compteur = 0; for (let lettre of mot){ if (lettre == 'e' || lettre == 'é' || lettre == 'è' || lettre == 'ê'){ compteur += 1; } } reponse.innerHTML = `Le nombre de lettres e est égal ${compteur}.`; } ,false);
-
-
Ouvrez le fichier HTML avec un navigateur comme Firefox puis testez le formulaire en saisissant un mot puis en cliquant ailleurs sur la page.
Affichages à observer
On entre le mot « abc » :
On entre le mot « exemple » :
Appelez l'enseignant et indiquez-lui le rôle du script JavaScript ?
-
Apportez des modifications qui permettront d'afficher le nombre de voyelles (on omettra le cas des lettres accentuées pour simplifier) en-dessous de l'affichage du nombre de lettres
'e'
.Une solution possible
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
let entree = document.querySelector("#mot"); let reponse = document.querySelector("#reponse"); entree.addEventListener("change", () => { // on récupère le mot entré par l'utilisateur: let mot = entree.value; // on compte le nombre de lettres e du mot: let compteur = 0; let compteVoyelle = 0; for(let lettre of mot){ if(lettre == 'e' || lettre == 'é' || lettre == 'è' || lettre == 'ê'){ compteur += 1; } if(lettre == 'e' || lettre == 'a' || lettre == 'o' || lettre == 'i' || lettre == 'u' || lettre == 'y'){ compteVoyelle += 1; } } reponse.innerHTML = `Le nombre de lettres e (avec ou sans accent) est égal ${compteur}.<br> Et le nombre de voyelles (non accentuées) est égal à ${compteVoyelle}.`; } ,false);
TP D05.53*☘
-
Téléchargez chacun des trois fichiers ci-dessous et sauvegardez-les dans le répertoire de travail.
-
Fichier HTML
tp_D05.53.html
.Contenu du fichier HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title> Formulaire d'affichage </title> <!-- Lien vers le CSS --> <link href="tp_D05.53.css" rel="stylesheet" type="text/css" /> <!-- Lien vers le Javascript --> <script src="tp_D05.53.js" charset="utf-8" defer="defer"></script> </head> <body> <form> <div> <label for="taillemin">Entrez une taille minimale :</label> <input type="number" id="taillemin" min="3" max="100" step="1" value="20" /> </div> <div> <label for="taillemax">Entrez une taille maximale :</label> <input type="number" id="taillemax" min="5" max="200" step="1" value="90"/> </div> </form> <div id="fig"> Cliquez ici. </div> </body> </html>
-
Fichier CSS
tp_D05.53.css
.Contenu du fichier CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
html { font-size: 20px; } body { width: 80%; margin: 2rem auto; } form { margin: 1rem; padding: 1rem; border: 5px ridge purple; text-align: center; } div { margin: 1rem; } p { display: inline-block; background-color: red; margin: 3px; }
-
Fichier JavaScript
tp_D05.53.js
.Contenu du fichier JS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
let figure = document.querySelector("#fig"); // on définit un écouteur sur l'élément input de type submit, figure.addEventListener("click", function() { // on récupère les tailles entrées par l'utilisateur: let tailleMin = parseInt(document.querySelector("#taillemin").value); let tailleMax = parseInt(document.querySelector("#taillemax").value); let taille = tailleMax; let chaine = ''; //chaîne vide while(taille >= tailleMin){ chaine += `<p style="width:${taille}px; height:${taille}px;"></p>`; taille -= 10; } figure.innerHTML = chaine; }, false);
-
-
Ouvrez le fichier HTML avec un navigateur comme Firefox puis testez le formulaire en cliquant à l'endroit indiqué.
Affichage à obtenir
-
Modifiez les fichiers HTML, CSS et Javascript pour que soient affichés des disques verts plutôt que des carrés rouges et avec un diamètre qui augmente au lieu de diminuer.
La différence de taille entre deux disques doit également être demandée dans un champinput
plutôt qu'imposée comme précédemment.Affichage à obtenir
Une piste
Pour afficher des disques, il suffit d'utiliser la propriété css
border-radius
sur les paragraphes affichés. Faites une petite recherche web pour trouver comment règler cette propriété pour obtenir des disques.Une solution - Fichier HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title> Formulaire d'affichage </title> <!-- Lien vers le CSS --> <link href="tp_D05.53.css" rel="stylesheet" type="text/css" /> <!-- Lien vers le Javascript --> <script src="tp_D05.53.js" charset="utf-8" defer="defer"></script> </head> <body> <form> <div> <label for="taillemin">Entrez une taille minimale :</label> <input type="number" id="taillemin" min="3" max="100" step="1" value="20" /> </div> <div> <label for="taillemax">Entrez une taille maximale :</label> <input type="number" id="taillemax" min="5" max="200" step="1" value="90"/> </div> <div> <label for="delta">Entrez la différence de taille entre deux éléments p consécutifs :</label> <input type="number" id="delta" min="1" max="20" step="1" value="3"/> </div> </form> <div id="fig"> Cliquez ici. </div> </body> </html>
Une solution - Fichier CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
html { font-size: 20px; } body { width: 80%; margin: 2rem auto; } form { margin: 1rem; padding: 1rem; border: 5px ridge purple; text-align: center; } div { margin: 1rem; } p { display: inline-block; background-color: green; margin: 3px; border-radius: 50%; }
Une solution - Fichier JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
let figure = document.querySelector("#fig"); // on définit un écouteur sur l'élément input de type submit, figure.addEventListener("click", function() { // on récupère les tailles entrées par l'utilisateur: let tailleMin = parseInt(document.querySelector("#taillemin").value); let tailleMax = parseInt(document.querySelector("#taillemax").value); let delta = parseInt(document.querySelector("#delta").value); let taille = tailleMin; let chaine = ''; //chaîne vide while(taille <= tailleMax){ chaine += `<p style="width:${taille}px; height:${taille}px;"></p>`; taille += delta; } figure.innerHTML = chaine; }, false);