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 :

[DOM] Désactiver un bouton radio en fonction de ce qui est déjà coché


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut [DOM] Désactiver un bouton radio en fonction de ce qui est déjà coché
    Bonjour,

    je réalise un questionnaire d'enquête en ligne en php et je dois réaliser quelque chose d'un peu particulier pour une question.

    J'ai 10 affirmations qui doivent être classée de 1 à 10 suivant l'importance que chaque personne enquêtée leur donnera.

    J'ai construit un tableau avec des boutons radio (voir http://www.cityfreight.eu/ESTIMATE/i...5?suivant=Q304)

    Voici le code (simplifié pour 3 qualités) :

    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
     
    <table width=100%>
    <tr>
    	<td colspan="5">Classez ces qualités selon l'ordre d'importance que vous leur accordez dans une situation idéale.</td> 
    </tr>
    <form method="post" action="?suivant=Q305">	 
     <tr>	
    	<td  width=50%></td>
    	<td  width=10%><p align="center">Qualité la plus importante	</p></td>
    	<td  width=10%></td>
    	<td  width=10%><p align="center">Qualité la moins importante</p></td>
    	<td  width=20%></td>
    </tr>	
    <tr>	
    	<td  width=50%>rigolo </td>
    	<td  width=10%><input type="radio" name="rigolo" value="1">1	</td>
    	<td  width=10%><input type="radio" name="rigolo" value="2">2	</td>
    	<td  width=10%><input type="radio" name="rigolo" value="3">3	</td>
    	<td  width=20%></td>
    </tr>	
    <tr>
    	<td  width=50%>intelligent </td>
    	<td  width=10%><input type="radio" name="intelligent" value="1">1	</td>
    	<td  width=10%><input type="radio" name="intelligent" value="2">2	</td>
    	<td  width=10%><input type="radio" name="intelligent" value="3">3	</td>
    	<td  width=20%></td>
    </tr>
    <tr>
    	<td  width=50%>Beau </td>
    	<td  width=10%><input type="radio" name="beau" value="1">1	</td>
    	<td  width=10%><input type="radio" name="beau" value="2">2	</td>
    	<td  width=10%><input type="radio" name="beau" value="3">3	</td>
    	<td  width=20%></td>
    </tr>	
    <tr> 
    	<td colspan="12" align='right'>
    	<input type="submit" value="suivant >">
    	</td>
    </tr>
    </form>
    </table>
    J'aimerais que je ne puisse cocher qu'un seul bouton par ligne (ce qui est le cas) et qu'un seul bouton par colonne : c'est-à-dire rendre les autres boutons de la colonne disabled lorsqu'il y en a un de coché.

    Je suppose qu'il faudrait que j'utilise un script javascript... mais je n'ai pas encore eu l'occasion de devoir utiliser javascript : je n'y connais rien. Comment dois-je faire?

    Avez-vous déjà rencontré ce type de situation? Que dois-je faire pour classer ces qualités dans un ordre de préférence?

    Merci d'avance pour votre aide,

    Nabouille

  2. #2
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Question qui a sa place dans javascript.

    Mais tu pourais par exemple donner un ID a chaque champ (par exemple l1c1, l1c2, etc)
    Ensuite, chaqu'u des boutons de la colonne 1 appelle via onclick="" la fonction disable('c1') et cette fonction serait constituer d'une boucle qui récupère tout les boutons radio via GetElementByID('l' + i + param); puis les désactive(quelque chose comme "Objet.disabled = true;", au pire utilise l'inspecteur dom de firefox tu a toute les propriétés javascript des objets de la page )
    C'est pas très très propre mais à 1H du matin je peut pas faire mieux.
    A la limite si tu gère ca via php, tu peut créer une fonction qui prend en paramètre le nom de ligne par colonne et l'id de la colonne du bouton.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Ok, je me doute bien qu'il y a un moyen, mais je ne connais pas vraiment javascript...

    Quelqu'un n'aurait pas un exemple de ce type de script pour que je m'en inspire?

    Merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Ok, j'ai un peu approfondi ma question...

    j'ai fait le script suivant ;

    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
    <script language="javascript">
    function verif(id, colonne)	
    {	  
    if (id=="l1c1")
    { 
      document.getElementById('l2c1').disabled = true; 
      document.getElementById('l3c1').disabled = true; 
      document.getElementById('l4c1').disabled = true;
     }
      else if (id=="l2c2")
    { document.getElementById('l1c2').disabled = true; 
      document.getElementById('l3c2').disabled = true;	
      document.getElementById('l4c2').disabled = true;
      }	 
     }
     </script>
    et dans mon formulaire (extrait) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="radio" name="Ordreflexibilite" value="1" id="l1c1" onClick=verif("l1c1",1)>
    <input type="radio" name="Ordreflexibilite" value="2" id="l1c2" onClick=verif("l1c2",2)>
    Les cases de ma colonne se grisent effectivement lorsque je clique sur le bouton l1c1....

    Mais j'aimerais que si je coche une autre colonne pour ma première ligne (par ex l1c5), les boutons de ma première colonne redeviennent sélectionnables...

    Au lieu de "OnClick", existe-t-il quelque chose du genre "si le bouton est coché" ?? Comment puis-je faire?

    Merci

    Nabouille

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    svp, est-ce que quelqu'un peut m'aider?

Discussions similaires

  1. Réponses: 12
    Dernier message: 04/03/2015, 16h09
  2. Réponses: 6
    Dernier message: 26/10/2010, 18h46
  3. griser un bouton radio en fonction d'un checkbox
    Par mademoizel dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 22/03/2007, 15h28
  4. chgmt automatique de bouton radio en fonction d'autres champs
    Par winnie82 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/06/2006, 14h49
  5. Désactiver un bouton Radio, c possible?
    Par wil4linux dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2005, 11h58

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