Tu vas apprendre à lire ce que l’utilisateur tape dans la page et à t’en servir dans ton code JS pour faire des petits jeux et interactions.
En HTML, tu peux créer des champs :
type="text" : textetype="number" : nombretype="password" : mot de passe<label for="pseudo">Ton pseudo :</label>
<input id="pseudo" type="text">
<button id="btn-pseudo">Dire bonjour</button>
En JS, on récupère la valeur avec la propriété .value.
const inputPseudo = document.querySelector("#pseudo");
const btnPseudo = document.querySelector("#btn-pseudo");
btnPseudo.addEventListener("click", () => {
const valeur = inputPseudo.value;
console.log("Utilisateur :", valeur);
});
Avec const champ = document.querySelector("#age");,
comment lire ce que l’utilisateur a tapé ?
Quand tu récupères input.value, tu obtiens
une chaîne de caractères, même si l’utilisateur tape un nombre.
const champ = document.querySelector("#age");
const txt = champ.value;
console.log(typeof txt); // "string"
Pour faire un calcul, convertis en nombre :
const n = Number(txt); // ou parseInt(txt), parseFloat(txt)
Si l’utilisateur tape 5 dans un <input>, input.value vaut :
On va faire un petit formulaire qui prend deux nombres et affiche la somme.
<input id="a" type="number" placeholder="Nombre A">
<input id="b" type="number" placeholder="Nombre B">
<button id="btn-calc">Calculer</button>
<p id="resultat">Résultat : ?</p>
const champA = document.querySelector("#a");
const champB = document.querySelector("#b");
const btnCalc = document.querySelector("#btn-calc");
const pRes = document.querySelector("#resultat");
btnCalc.addEventListener("click", () => {
const a = Number(champA.value);
const b = Number(champB.value);
const somme = a + b;
pRes.innerText = "Résultat : " + somme;
});
Version mini intégrée ici :
Résultat : ?
Question : à quoi sert Number(...) dans ce code ?
On va coder une version du jeu que tu as déjà vu en Python, mais cette fois directement dans la page web.
J’ai choisi un nombre secret entre 1 et 20. Tu as plusieurs essais, je te dirai “plus” ou “moins”.
// Idée de JS (tu peux le mettre dans un fichier js-3-game.js si tu veux)
let secret = Math.floor(Math.random() * 20) + 1;
let essais = 0;
function verifierProposition() {
const val = Number(guessInput.value);
essais++;
if (val === secret) {
// Bravo
} else if (val < secret) {
// C'est plus
} else {
// C'est moins
}
}
Question rapide : que fait exactement
Math.floor(Math.random() * 20) + 1 ?
Crée une page formulaire-js.html + un fichier
formulaire-js.js avec :
En JS :
.value,// Piste
const inputPseudo = document.querySelector("#pseudo");
const inputAge = document.querySelector("#age");
const btn = document.querySelector("#btn-valider");
const message = document.querySelector("#msg");
btn.addEventListener("click", () => {
// TODO : convertir l'âge avec Number(...)
// puis afficher le bon message dans #msg
});