IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Mon Quiz ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Mon Quiz ne fonctionne pas
    Bonjour, j'ai un problème avec mon code html ou javascript.
    J'essaye de faire un quiz avec un bouton valider qui calcule le score.
    (j'ai aussi essayé avec "Alert" ça ne marche pas.)

    Merci d'avance si vous y jetez un coup d’œil, d’ailleurs, voici le code :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <HTML>	 
    <HEAD>
    <TITLE>Quizz</TITLE>
    <SCRIPT>
    	function Score() {	                                 //score sur l'ensemble des questions
        var pt;
    	var pc; 
    	pt = 0;	
    	pc = (pt*100)/4
    			if (document.Quizz.Q1[1].checked == true) {
    				pt = pt + 1; 							 // +1 si bonne réponse
    			}
    			if ((document.Quizz.Q2[0].checked == false) &&
    		        (document.Quizz.Q2[1].checked == true) &&
    		        (document.Quizz.Q2[2].checked == true)) {
    			    pt = pt + 1;						     // +1 si bonne réponse 
    			}   
    	  		if (document.Quizz.Q3.value == "True4" ) {
    				pt = pt + 1;  		                     // +1
    			}						 
    			if (document.Quizz.04[0].checked == false{
    			Document.writeln('vous avez 0% de réponse corrects. Mwahahaha, vous savez ce qu'il vous reste à cocher!');  // Remet les points à 0 si "adoré notre site n'est pas coché"
    			}	 
    			Document.writeln('vous avez ' + pc + ' % de bonnes réponses');
    			else (document.Quizz.Q4[0].checked == true) {
    				pt = pt + 1;		                     // +1
    			}
     
    			Document.writeln('vous avez ' + pc + ' % de bonnes réponses');	  //donne le pourcentage de réponses correctes
    		}
    </SCRIPT>  
    </HEAD>
     
    <BODY>	 
    	<H1>Quizz - Evaluez vos connaissances</H1>	
     
    		<FORM NAME="Quizz">
    			<P>1. L'ADN chez les bactéries: <BR>
    			<INPUT TYPE=RADIO NAME=Q1 VALUE="False1"> a été découvert en 1966 par Paul McCartney.<BR>  
    			<INPUT TYPE=RADIO NAME=Q1 VALUE="True1"> est circulaire.<BR>
    			<INPUT TYPE=RADIO NAME=Q1 VALUE="False2"> est contenu dans une organite.		
     
    			<P>2. C et G sont:<BR>
    			<INPUT TYPE=CHECKBOX NAME=Q2 VALUE="False3">  l'abréviation de Caramel et de Goodies.<BR>
    			<INPUT TYPE=CHECKBOX NAME=Q2 VALUE="True2">  l'abréviation de Cytosine et Guanine.<BR>
    			<INPUT TYPE=CHECKBOX NAME=Q2 VALUE="True3">  sont 2 types de bases azotées contenues dans les nucléotides de l'ADN.	  
     
    			<P>3. Le taux de C+G:<BR>
    			<SELECT NAME=Q3>
    			<OPTION value="False4" SELECTED> est indépendant du type de bactéries
    			<OPTION value="False5"> varie selon la position de la lune
    			<OPTION value="True4"> dépend du type de bactéries
    			<OPTION value="False3"> augmente au cours du temps
    			</SELECT>	
     
    			<P>4. Voux avez: <BR>
    			<INPUT TYPE=CHECKBOX NAME=Q4 VALUE="True5"> adoré notre site.
    	<BR>  	
    	<input TYPE="button" value="Valider" onClick="Score()"> &nbsp &nbsp
    	<input TYPE=RESET VALUE="Annuler">			 
    	<BR><BR>
    	<SCRIPT>Score()</SCRIPT>
     
    </FORM> 
    </BODY>	
    </HTML>

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 929
    Points
    44 929
    Par défaut
    Bonjour,
    pas mal de choses à dire.
    commençons par le HTML, prend l'habitude d'avoir une structure de page minimum comme suit
    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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>Le titre de la page</title>
    <style>
    /* les déclarations de style des différents éléments */
    </style>
    <script>
    /* ton code javascript */
    </script>
    </head>
    <body>
    </body>
    </html>
    cela vaut surtout pour le DOCTYPE et l'encodage.
    Prend égalemnt l'habitude de mettre tes balises en minuscule.

    Coté javascript
    - javascript est sensible à la casse, ce qui signifie que Document est différent de document.

    - l'utilisation de document.write, voire document.writeln est à éviter autant que faire ce peut et l'on peut toujours.
    A lire Comprendre document.write() en JavaScript.

    - l’accès à la référence d'un élément se fait en utilisant la méthode de l'objet document intitulée getElementByID( 'id_element'), il existe d'autres moyens mais dans ton cas cela suffit. Tu pourrais également utiliser getElementsByName pour récupérer tes checkbox.

    - vérifies la syntaxe de ce que tu écris
    if (document.Quizz.04[0].checked == false{
    devrait être à minima
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.Quizz.Q4[0].checked == false){
    Cela fait déjà beaucoup de point à corriger, bon courage

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci, voici mes modifications:

    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
    function Score() { //score sur l'ensemble des questions
        var pt;
        pt = 0;
        if (document.Quizz.Q1[1].checked == true) {
            pt = pt + 1; // +1 si bonne réponse
        }
        if ((document.Quizz.Q2[0].checked == false) &&
            (document.Quizz.Q2[1].checked == true) &&
            (document.Quizz.Q2[2].checked == true)) {
            pt = pt + 1; // +1 si bonne réponse 
        }
        if (document.Quizz.Q3.value == "True4") {
            pt = pt + 1; // +1
        }
        if (document.Quizz.Q4[0].checked == true) {
            pt = pt + 1; // +1
        }
     
        Alert('vous avez ' + (pt * 100) / 4 + ' % de bonnes réponses'); //donne le pourcentage de réponses correctes
    }

    et
    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
    <FORM NAME="Quizz">
    	<P>1. L'ADN chez les bactéries: <BR>
    	<INPUT TYPE=RADIO NAME=Q1 VALUE="False1"> a été découvert en 1966 par Paul McCartney.<BR>  
    	<INPUT TYPE=RADIO NAME=Q1 VALUE="True1"> est circulaire.<BR>
    	<INPUT TYPE=RADIO NAME=Q1 VALUE="False2"> est contenu dans une organite.		
     
    	<P>2. C et G sont:<BR>
    	<INPUT TYPE=CHECKBOX NAME=Q2 VALUE="False3">  les abréviations de Caramel et de Goodies.<BR>
    	<INPUT TYPE=CHECKBOX NAME=Q2 VALUE="True2">  les abréviations de Cytosine et Guanine.<BR>
    	<INPUT TYPE=CHECKBOX NAME=Q2 VALUE="True3">  deux types de bases azotées contenues dans les nucléotides de l'ADN.	  
     
    	<P>3. Le taux de C+G:<BR>
    	<SELECT NAME=Q3>
    		<OPTION value="False4" SELECTED> est indépendant du type de bactéries
    		<OPTION value="False5"> varie selon la position de la lune
    		<OPTION value="True4"> dépend du type de bactéries
    		<OPTION value="False3"> augmente au cours du temps
    	</SELECT>	
     
    	<P>4. Voux avez: <BR>
    	<INPUT TYPE=CHECKBOX NAME=Q4 VALUE="True5"> adoré notre site.
    	<BR><BR>  	
    	<input TYPE="button" value="Valider" onClick="Score()"> &nbsp &nbsp
    	<input TYPE=RESET VALUE="Annuler"><BR><BR>
    </FORM>

    la fenêtre alerte ne s'affiche pas non plus, mais il me semble bien avoir tout corrigé, même simplifié par rapport à ce que je voulais.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 929
    Points
    44 929
    Par défaut
    Je vois que tu as tenu compte des remarques mais que très partiellement
    Alert('vous avez ' + (pt * 100) / 4 + ' % de bonnes réponses'); //donne le pourcentage de réponses correctes
    Alert(, à ce jour javascript est toujours sensible à la casse.

    if (document.Quizz.Q4[0].checked == true) {
    il n'y a qu'un élément Q4 donc le [0] est en trop.

    Pour info ton premier test sur les éléments Q2 pourrait être largement simplifié.

    Pour finir une remarque d'ordre général, c'est pratique un Quizz où il suffit de regarder le code source pour avoir la solution

    FAQ JavaScript

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    J'ai réussit à tout corrigé et ça marche comme je le souhaitais au début! merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. la publication de mon appli ne fonctionne pas
    Par tchecko dans le forum Accès aux données
    Réponses: 4
    Dernier message: 07/10/2006, 11h59
  2. Réponses: 1
    Dernier message: 30/08/2006, 19h00
  3. [VB.Net/DataReader] Pourquoi mon ExecuteReader ne fonctionne pas ?
    Par emeraudes dans le forum Accès aux données
    Réponses: 8
    Dernier message: 21/08/2006, 13h38
  4. Réponses: 14
    Dernier message: 17/08/2006, 10h29
  5. mon trigger ne fonctionne pas !
    Par japi33 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 20/03/2006, 21h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo