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 :

[DEBUTANT] Besoin d'un petit coup de main


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 22
    Points
    22
    Par défaut [DEBUTANT] Besoin d'un petit coup de main
    Bonjour, voilà j'ai un formulaire contenant divers champ dont des boutons radio.
    Ce que j'aimerais faire, c'est tester ceux qui correspondent a des boutons radio (validation du formulaire donc) pour obliger l'utilisateur à cocher au moins un bouton à chaque fois (il y a donc plusieurs boutons pour un même nom).
    Donc pour faire ma fonction verif, j'ai créer un tableau contenant les différents nom des boutons radios et ensuite j'ai crée une boucle for pour tester si les boutons sont cochés.
    J'en suis arrivé là :
    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
    <script type="text/javascript">
     
    function verif(formulaire) {
    	var matieres=['sexe','algo','analyse','archi','bd','c++','prog','systeme'];
    	for(i=0;i<8;i++)
    	{
    		window.alert('for');
    		if(document.formulaire.matieres[i].checked)
    		{
    			window.alert('selectionne !');
    			return true;
    		}
    	}
    	window.alert('pas selectionne');
    	return false; 
    }
     
    </script>
    Le problème, c'est qu'évidement sa marche pas... J'ai essayé de faire un test tout simple pour savoir la valeur d'un de mes boutons radio et sa me sort "undefined"... Pourquoi ?
    Voila un morceau du code mon formulaire (le début, puisqu'il est assez long) :
    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
    <form name="formulaire" method='get' action='http://cutrona/progweb1A/TP5/analyse.php' onSubmit="return verif();">
    <table class="global"><tr><td>
    <table>
    	<tr><td colspan=2><h6>Identité</h6>
    	<tr><td>Nom <td><input type=text name="nom">
    	<tr><td>Prénom <td><input type=text name="prenom">
    	<tr><td rowspan=2>Sexe <td><input type=radio name="sexe" id="homme">
    		<label for="homme">Homme</label>
    	<tr><td><input type=radio name="sexe" id="femme">
    		<label for="femme">Femme</label>
    	<tr><td>Groupe <td><select name="groupe" size="19">
            			<option>Choisissez...</option>
     
    				<optgroup label="1ère année">
            				<option>groupe a</option>
            				<option>groupe b</option>
    					<option>groupe c</option>
    					<option>groupe d</option>
    					<option>groupe e</option>
    					<option>groupe f</option>
    				</optgroup>
     
    				<optgroup label="2ème année">
    					<option>groupe a</option>
            				<option>groupe b</option>
                                            .......
    Pouvez vous m'aider ??
    Merci

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    et en mettant la propriété value ???


  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 22
    Points
    22
    Par défaut
    j'ai essaye de supprimer la boucle et de mettre à la place:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.alert(document.formulaire.sexe.value);
    et sa ma retourné "undefined"

    je comprends pas...

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    ce que je veux dire c'est que selon ton code on voit par exemple ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=radio name="sexe" id="homme">
    Il y a aucune valeur défini donc que veux tu renvoyer si aucune valeur lui est attribué...

    D'ailleurs il me semble pas qu'une valeur précise puisse être attribué à un checkbox, mais plutot un état booléen

    Et pour info voici ce qu'il ressort de la FAQ pour récupérer l'état de checkbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for (i=0; i<document.nomduform.nomdescases.length; i++) {
        if (document.nomduform.nomdescases[i].checked) 
          // cochée 
       else 
          // pas cochée 
    }
    Et donc testes ceci pour voir si juste homme est coché :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.alert(document.formulaire.sexe[0].checked);

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 22
    Points
    22
    Par défaut
    oui c'est sa je viens de tester sa marche !
    bon je vais essayer d'adapter a mon code mais sa devrait aller
    Merci beaucoup !

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 22
    Points
    22
    Par défaut
    bon dernier problème :
    voilà j'ai utilisé ce qui est écrit au dessus, mais j'aimerais pour utilisé mon tableau "matieres" pour le nom des cases comme suit :
    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
    <script type="text/javascript">
     
    function verif(formulaire) {
    	var matieres=['sexe','algo','analyse','archi','bd','c++','prog','systeme'];
    	for(i=0;i<8;i++)
    	{
    		champ=matieres[i];
    		if(champ=='sexe')
    		{
    			for(j=0;j<2;j++)
    			{
    				if(document.formulaire.champ[j].checked==false)
    				{
    					return false;
    				}
    			}
    		}
    	}
    	window.alert('pas selectionne');
    	return false; 
    }
     
    </script>
    Voila le problème vient du fait qu'il ne comprends pas "champ[j]".
    quand je mets par exemple "sexe[j]" sa marche.

    Vous pouvez m'aider ?
    Merci

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 22
    Points
    22
    Par défaut
    personne ne peut m'aider ?
    Merci

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je paraphraserai FF champ est non défini...Il ne remplace pas par sa valeur.De plus le fait de faire ceci veut dire que tu prends pas le texte entier mais le caractère j de la chaine de caractère champ.
    Donc pourquoi ne fais tu pas directement pour chacun, c'est plus simple mais plus long lol


    sinon je viens de vérifier tu peux mettre à la place de id="homme", value="homme"


    Sinon j'ai testé ceci et ca à l'air de focntionner :
    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
     
    <script type="text/javascript">
     
    function verif() {
       var matieres = new Array(document.formulaire.sexe,document.formulaire.algo);
       for(i=0;i<matieres.length;i++)
       {
          champ = matieres[i];
    	  for(j=0;j<champ.length;j++)
          {
                alert(champ[j].checked)
    	  }
       }
    }
     
    </script> 
    <form name="formulaire">
      <input type=radio name="sexe" value="homme"><label for="homme">Homme</label>
      <input type=radio name="sexe" value="femme"><label for="femme">Femme</label>
     
      <input type=radio name="algo" value="html"><label for="homme">html</label>
      <input type=radio name="algo" value="js"><label for="femme">js</label>  
     
      <input type="button" onclick="verif();" />
    </form>
    Fonctionne sous IE et FF les autres pas testé

  9. #9
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 22
    Points
    22
    Par défaut
    ah oui très bonne idée de mettre toute la ligne dans "le tableau !
    Merci
    je vais utiliser sa !

Discussions similaires

  1. Besoin d'un petit coup de main avec Reflection
    Par teddyalbina dans le forum C#
    Réponses: 1
    Dernier message: 18/11/2008, 00h54
  2. Besoin d'un petit coup de main en algorithmie :D
    Par nikofybc dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 21/07/2008, 19h50
  3. Réponses: 8
    Dernier message: 21/04/2007, 16h15
  4. Besoin d'un petit coup de main avec les hash
    Par scaleo dans le forum Langage
    Réponses: 6
    Dernier message: 31/05/2006, 23h12
  5. UPDATE trop compliqué, besoin d'un petit coup de main ;)
    Par pwangen dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/02/2006, 11h16

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