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 :

Desactiver un bouton quand un bouton radio est coché


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Par défaut Desactiver un bouton quand un bouton radio est coché
    Bonjour à tous,

    Je me permets de venir ouvrir une nouvelle discussion car j'ai cherché sur internet et principalement dans votre forum, mais sans succès

    Je sais que mon titre fait appel à de nombreux sujets similaires et déjà résolu, mais mon cas et un peu différent, du moins je pense

    Donc je vous explique rapidement, j'ai créé un siteweb qui héberge un quiz en ligne. Simple quiz, il s'agit simplement d'une série de 100 questions présentées de cette manière:
    -l'intitulé de la question
    -4 réponses possibles en bouton radio
    -et un bouton next

    Quand un utilisateur sélectionne une mauvaise réponse elle s'affiche en rouge tandis que la bonne apparait en vert. De plus il a un délai d'attente de 5 secondes pour analyser son erreur et voir la bonne réponse. Seulement durant ce délai, l'utilisateur peut continuer de cocher les boutons radios alors qu'il a déjà choisi une réponse.

    Par conséquent je souhaiterais pouvoir empêcher la re-sélection d'une réponse après en avoir déjà choisi une.

    J'ai donc penser tout simplement à désactiver le bouton "next".

    Mais étant donné que j'ai jamais fait de javascript avant aujourd'hui, et que je ne comprends pas très bien le code qui a été pondu par l'ancien codeur, je me trouve "légèrement" bloqué pour réaliser ce traitement.

    Je vous transmets le code concerné:

    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
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    function loadQuiz(qnum) 
    {
    	if (typeof(quizArray) !== 'undefined')
    	{
    		displayQuiz(ent = document.getElementById('quiz1'),qnum++);
    		var newB = document.createElement("button"); 
    		newB.style.styleFloat = 'left';
    		newB.style.cssFloat = 'left';
    		var rightA = quizArray.split("|");
    		var rightA = rightA[1].split("//");
    		var rightA = rightA[0];
     
    		newB.onclick = function validateQuestion(){
    		var count=0, verif=0, numGoodAnswer="";	
    			for(var i=0;i<4;i++)
    			{
     
    				if(document.form_answer.a[i].checked){	
    					count++;
    					if(document.form_answer.a[i].value==rightA){
    						document.form_answer.answer.value=document.form.lastAns.value+1;
    					}
    					else{
    						//permet d'afficher la mauvaise réponse en rouge
    						document.form_answer.answer.value=document.form.lastAns.value+0;
    						verif=1;
    						numGoodAnswer="l"+i;
    						document.getElementById(numGoodAnswer).style.backgroundColor='#CC0000';
    					}
    				}
    			}
    			for(var i=0;i<4;i++)
    			{
    				//permet d'afficher la bonne réponse en vert
    				if(document.form_answer.a[i].value==rightA && count != 0){
    				numGoodAnswer="l"+i;
    				document.getElementById(numGoodAnswer).style.backgroundColor='#33CC00';
    				}
    			}
    			//empêche l'utilisateur de passer à la question suivante sans avoir sélectionner de réponse
    			if(count == 0){
    				alert("Please select an answer before to click Next !");			
    			} else{
    				if(verif == 1)
    				{
    					//fait patienter l'utilisateur pendant 5 secondes s'il n'a pas choisi la bonne réponse
    					//5 secondes pour qu'il puisse apprendre de son erreur et en guise de pénalité
    					document.getElementById(button).disable = true;
    					setTimeout("nextPage(qnum)",5000);
    				} else {
    					nextPage(qnum);
    			    		return false;
    				}
    			}
    		}
     
    		var newTb = document.createTextNode('Next');
    		if(Number(qnum)== Number(nbQ))
    		newTb = document.createTextNode('Finish');
    		newB.appendChild(newTb);
    		ent.appendChild(newB);
    		var timel = quizArray.split('|');
    		timel = timel[1].split('//');
    		timel = timel[1];
    		document.form_answer.qid.value=document.form.IDs.value;
    		document.form_answer.time.value=document.form.starttime.value;
    		resetTimer(timel,qnum);
    		decrementTimer();
    	}else
    	{
    		if (typeof(nbQ) !== 'undefined')
    		{
    			if (qnum>=nbQ) 
    				displayResult();
    		}
    	}
    }
    Je ne sais pas si vous avez besoin du code des autres fonctions, si c'est le cas, dites moi le

    Pour info j'ai déjà essayer différents codes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    				if(verif == 1)
    				{
    					//fait patienter l'utilisateur pendant 5 secondes s'il n'a pas choisi la bonne réponse
    					//5 secondes pour qu'il puisse apprendre de son erreur et en guise de pénalité
    					document.getElementById(button).disable = true;
    					setTimeout("nextPage(qnum)",5000);
    				} else {
    					nextPage(qnum);
    			    		return false;
    				}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    				if(verif == 1)
    				{
    					//fait patienter l'utilisateur pendant 5 secondes s'il n'a pas choisi la bonne réponse
    					//5 secondes pour qu'il puisse apprendre de son erreur et en guise de pénalité
    //pour forcer la sélection sur la première réponse de l'utilisateur de manière à ne pas pouvoir en sélectionner une différente
    document.getElementById(numGoodAnswer).checked = true;
    					setTimeout("nextPage(qnum)",5000);
    				} else {
    					nextPage(qnum);
    			    		return false;
    				}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    				if(verif == 1)
    				{
    					//pour forcer la sélection sur la première réponse de l'utilisateur de manière à ne pas pouvoir en sélectionner une différente
    					   document.getElementById(numGoodAnswer).checked = true;
    					setTimeout("nextPage(qnum)",5000);
    				} else {
    					nextPage(qnum);
    			    		return false;
    				}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    				if(verif == 1)
    				{
    					//retirer le bouton next
    					document.Next.disabled = true;
    					setTimeout("nextPage(qnum)",5000);
    				} else {
    					nextPage(qnum);
    			    		return false;
    				}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    				if(verif == 1)
    				{
    					//également retirer le bouton next
    					document.form_answer.Next.disabled = true;
    					setTimeout("nextPage(qnum)",5000);
    				} else {
    					nextPage(qnum);
    			    		return false;
    				}
    Mais le tout sans succès

    J'espère m'être bien exprimé, et je suis ouvert à toutes autres idées pour réaliser mon traitement !

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    essaies plutôt quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    newB.disabled = 'disabled';
    Dernière modification par vermine ; 01/06/2012 à 14h26. Motif: Abréviations

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Par défaut Sujet résolu !
    Je comprends pas trop, c'est le deuxième post que je soumets dans ce site et j'ai toujours la solution à la première réponse

    Et bien écoute je te remercie énormément, c'est vraiment incroyable. C'est sûrement annodin pour toi, mais grâce à toi j'ai des étoiles dans les yeux !

    Merci beaucoup !

    Passe une bonne journée

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

Discussions similaires

  1. afficher un champ texte ssi un bouton radio est coché
    Par Invité dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/02/2013, 17h32
  2. Vérifier qu'un bouton radio est coché
    Par vince351 dans le forum jQuery
    Réponses: 1
    Dernier message: 11/07/2010, 22h38
  3. Exécuter une action quand un bouton radio est coché
    Par eddycool dans le forum Langage
    Réponses: 8
    Dernier message: 29/05/2009, 10h42
  4. Savoir si un bouton Radio est coché
    Par bullrot dans le forum Langage
    Réponses: 4
    Dernier message: 23/09/2008, 12h30
  5. Activer boutons checkbox SEULEMENT si un input radio est coché
    Par bobic dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 28/04/2006, 14h05

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