Bonjour à tous,
Je dois faire un quiz pour un projet. J'ai réussi à faire quelques choses par moi-même mais je ne suis franchement pas douée en JS et j'aurai besoin d'aide pour continuer. Il s'agit d'un quiz de 8 questions avec 4 réponses pour chaque.
Voici tout d'abord :
mon HTML (réduit à 2 questions) :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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
39
40
41
42
43
44
45 <form method="POST" action: "JS/quizz.js" name="quiz" > <ol> <li> <p>le chat dort : <ul> <li> <input type="checkbox" name="question1" value="jour" >8 heures par jour </li> <li> <input type="checkbox" name="question1" value="nuit">8 heures par nuit </li> <li> <input type="checkbox" name="question1" value="journuit">8 heures par jour ET par nuit </li> <li> <input type="checkbox" name="question1" value="vie" id="popup" >parce qu'il en a marre de la vie </li> </ul> </p> </li> <li> <p>le chat crache : <br> <em>(Plusieurs choix possibles)</em> <ul> <li> <input type="checkbox" name="question2" value="faim">parce qu'il a faim </li> <li> <input type="checkbox" name="question2" value="peur">parce qu'il a peur </li> <li> <input type="checkbox" name="question2" value="impressionner">parce qu'il veut impressionner </li> <li> <input type="checkbox" name="question2" value="gorge" id="popup">parce qu'il a... un chat dans la gorge </li> </ul> </p> </li> </ol> </form> <button id="validation">Valider</button> <div id="resultat"></div>
mon CSS :
Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 form ul li { list-style-type: none; } form span { /*barrer le mot "aime" ds le quizz*/ text-decoration: line-through; } #validation { margin-bottom: 50px; } #resultat { display: none; } #resultat.show { display: block; width: 700px; height: 50px; border: 1px solid black; margin-bottom: 100px; }
Je voudrais :
1. faire en sorte que certaines questions n'acceptent qu'une seule réponse et d'autres 2,3 ou 4. Ca, je n'ai pas trouvé comment faire...
2. faire en sorte que lorsqu'une réponse qui comporte l'ID "popup" est cliqué, un message apparait. J'ai réussi à faire ça à un moment mais bizarrement ça ne fonctionnait que sur la 1ere question. Et depuis que j'ai modifié mon code, ça ne marche plus du tout...
Où est mon erreur ?
Voici mon script :
3. lorsqu'on clique sur le bouton "valider", faire en sorte qu'un message apparaisse (dans une DIV par défaut cachée) avec le résultat. Là, c'est au niveau du calcul des bonnes réponses que je coince...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 //déclaration des variables var reponsePopup; //fonction function onClickRepPopup() { if (reponsePopup.checked) //si les réponses qui ont l'id popup sont checked { alert("Vous le pensez vraiment ?" + "\n" + "Allez, sérieusement..."); } } //code principal document.addEventListener('DOMContentLoaded',function() { reponsePopup = document.querySelector("#popup"); //je cible mes réponses qui ont l'ID "popup" et je les affecte à la variable reponsePopup reponsePopup.addEventListener("click", onClickRepPopup); //je place une écoute. Quand mes réponses avec id "popup" seront cliquées=>déclenchement de la fonction "onClickButton". });
Voici mon script :
Merci d'avance pour votre aide et conseils !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 var question1 = document.quiz.question1[2]; //pour chaque question, je crée une variable qui correspond à la bonne réponse var question2 = document.quiz.question2[1]; //le problème est que, pour cette question, je veux considérer aussi la réponse [2] comme bonne function onClickValid() { resultat.classList.add("show"); //au clic sur le bouton valider, je fais apparaitre la DIV resultat if ((question1.checked) && (question2.checked)) //si toutes les réponses cochées sont bonnes { resultat.textContent = " 8/8 ! EXCELLENT, vous connaissez parfaitement le chat !"; //le texte s'affiche dans ma DIV } else //sinon, autre texte et calcul du résultat { resultat.textContent = "Encore quelques mauvaises réponses..."; } } //code principal document.addEventListener("DOMContentLoaded", function() { validation = document.querySelector("#validation"); //je cible le bouton de validation au bas du formulaire resultat = document.querySelector("#resultat"); //je cible la DIV au bas de mon formulaire qui s'affichera lors du click sur le bouton "valider" validation.addEventListener("click", onClickValid); //quand il y a clic sur le bouton valider, on déclenche la fonction onClickValid resultat.addEventListener("click", onClickValid); });
Partager