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 :

Conditions avec 2 checkbox


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut Conditions avec 2 checkbox
    Bonjour,

    Voici ce que je recherche en utilisant javacript :

    si une personne coche la checkbox "paiement" elle doit donc cocher un bouton radio "cheque" "cb" ou "mandat"

    voici le debut de mon javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var payment = document.formulaire.payment;
    var i=0;
    while(i<payment.length & payment[i].checked==false)
    	{
    	i++ ;
    	}
    	if(i>=payment.length) {
    	alert("choisissez votre paiement");
    	return false;
    	}

    Si vous avez des idées ?

    Merci d'avance

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    Poste-nous un document html complet et vidé de tout code inutile à l'illustration de ton problème, s'il te plait. On ne sait pas ce que représente quoi dans ton code. Voici un petit modèle :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>modèle de code pour bien poster</title>
      <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
      <style type="text/css">
      /* code css */
      </style>
    </head>
    <body>
      <!-- code xhtml -->
      <script type="text/javascript">
      <!--
        // code javascript
      //-->
      </script>
    </body>
    </html>

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    En parlant de contenu inutile, tu ne peux pas supprimer la première ligne de ton modèle ?

    Oups je sors et je cours, il y a une armée à mes trousses

    Sinon c'est vrai que ce n'est pas très clair ta demande ...

    Si tu veux juste tester qu'un bouton radio est coché, tu peux utiliser cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function isRadioChecked(objRadio) {
      if (objRadio[0]) {
        for (i=0; i < objRadio.length; i++) {
          if (objRadio[i].checked) {
            return true;
          }
        }
      } else if (objRadio.checked) {
        return true;
      }
     
      return false;
    }
    Et pour obtenir la valeur sélectionnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function getRadioValue(objRadio) {
      if (objRadio[0]) {
        for (i=0; i < objRadio.length; i++) {
          if (objRadio[i].checked) {
            return objRadio[i].value;
          }
        }
      } else if (objRadio.checked) {
        return objRadio.value;
      }
     
      return false;
    }

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    voici le code
    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <script type="text/javascript">  
    function validpaiement()
    {
    if ((document.forms.paiement.checked==true) && (document.forms.mode.checked==false) )
    {
    alert("merci de selectionner votre paiement");
    return false;
    }
    return true;
    }
    </script>
    </head>
    <body>
     
    <form action="http://www.monsite.com/acces-paiement.html" method="post" enctype="application/x-www-form-urlencoded" name="forms" OnSubmit="return validpaiement()">
    	<table>
    		<tr>
    			<td>
    	<input type="checkbox" name="paiement" id="paiement" /></td><td> Je désire régler maintenant</td>
    		</tr>
    		<tr>
    			<td><input type="radio" name="mode" id="cb" /> Carte bancaire</td>
    		</tr>
    		<tr>
    			<td><input type="radio" name="mode" id="cheque" />Chèque</td>
    		</tr>
    		<tr>
    			<td><input type="radio" name="mode" id="mandat" />Mandat</td>
    		</tr>
    		<tr>
    			<td colspan="2" style="text-align:center">
    			<input type="submit" value="valider">
    			</td>
    		</tr>
    	</table>
    </form>
    </body>
    </html>
    le principe que je recherche est que si il coche la chekbox il faut l'obliger a sélectionner un mode de paiement

    Merci

  5. #5
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Il y a sûrement mieux,
    mais voilà ce que je ferais.
    Pour accéder à l'attribut checked, je passerais plutôt par la fonction getElementById()
    et
    je désactiverais les checkbox type de paiement
    tant que l'utilisateur n'a pas signifié qu'il avait l'intention de payer maintenant.
    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <script type="text/javascript">
    function $(id) {
    	return document.getElementById(id);
    } 
    function activepaiement() {
    	$("cb").disabled=$("paiement").checked==false;
    	$("cheque").disabled=$("paiement").checked==false;
    	$("mandat").disabled=$("paiement").checked==false;
    }
    function validpaiement() {
    	if (($("paiement").checked==true) && !(($("cb").checked||$("cheque").checked||$("mandat").checked)==true) ) {
    		alert("merci de selectionner votre paiement");
    		return false;
    	}
    	return true;
    }
    window.onload=function() {
    	activepaiement();
    }
    </script>
    </head>
    <body>
     
    <form action="" method="post" enctype="application/x-www-form-urlencoded" name="forms" >
    	<table>
    		<tr>
    			<td>
    	<input type="checkbox" name="paiement" id="paiement" onclick="activepaiement()" /></td><td> Je désire régler maintenant</td>
    		</tr>
    		<tr>
    			<td><input type="radio" name="mode" id="cb"  /> Carte bancaire</td>
    		</tr>
    		<tr>
    			<td><input type="radio" name="mode" id="cheque"  />Chèque</td>
    		</tr>
    		<tr>
    			<td><input type="radio" name="mode" id="mandat"  />Mandat</td>
    		</tr>
    		<tr>
    			<td colspan="2" style="text-align:center">
    			<input type="submit" value="valider" onclick="validpaiement()">
    			</td>
    		</tr>
    	</table>
    </form>
    </body>
    </html>
    Fred

  6. #6
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    A vue de nez dans validpaiement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (document.getElementById("paiement").checked) {
      var mode = document.getElementsByName("mode");
      for (var i=0,imax=mode.length; i<imax; i++) {
        if (mode[i].checked) { return true; }
      }
      return false;
    }

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    merci de vos réponses mais aucun des 2 fonctionnent...

    en fait, je peux valider sans passer par les conditions

    Romann76

  8. #8
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Il suffit juste de déplacer le return false
    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <script type="text/javascript">  
    function validpaiement()
    {
    if (document.getElementById("paiement").checked) {
      var mode = document.getElementsByName("mode");
      for (var i=0,imax=mode.length; i<imax; i++) {
        if (mode[i].checked) { return true; }
      }
    }
    alert("raté");
    return false;
    }
    </script>
    </head>
    <body>
     
    <form action="http://www.monsite.com/acces-paiement.html" method="post" enctype="application/x-www-form-urlencoded" name="forms" OnSubmit="return validpaiement()">
    	<table>
    		<tr>
    			<td>
    	<input type="checkbox" name="paiement" id="paiement" /></td><td> Je désire régler maintenant</td>
    		</tr>
    		<tr>
    			<td><input type="radio" name="mode" id="cb" /> Carte bancaire</td>
    		</tr>
    		<tr>
    			<td><input type="radio" name="mode" id="cheque" />Chèque</td>
    		</tr>
    		<tr>
    			<td><input type="radio" name="mode" id="mandat" />Mandat</td>
    		</tr>
    		<tr>
    			<td colspan="2" style="text-align:center">
    			<input type="submit" value="valider">
    			</td>
    		</tr>
    	</table>
    </form>
    </body>
    </html>

Discussions similaires

  1. condition avec checkbox
    Par nokia1600 dans le forum VB.NET
    Réponses: 6
    Dernier message: 22/10/2009, 10h53
  2. Condition avec Checkbox
    Par mickou64 dans le forum MFC
    Réponses: 16
    Dernier message: 30/01/2009, 14h06
  3. [MySQL] condition de masse avec des checkbox
    Par tsunami77 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/07/2008, 11h52
  4. Conditions avec liste de tuples
    Par Robert999 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/07/2004, 11h01
  5. [ Struts ] plusieurs conditions avec equal?
    Par njac dans le forum Struts 1
    Réponses: 7
    Dernier message: 04/06/2004, 09h04

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