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] Test avant envoi de formulaire


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut [debutant] Test avant envoi de formulaire
    Dans un formulaire, j'ai une liste de case à cocher
    Le formulaire ne doit etre envoyé que si au moins une case est cochée
    sinon boite d'alert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post"  name="form1" action="<?php echo $editFormAction; ?>" onSubmit='javascript:verif_cocher_classe();'>
    Lors de la soumission, j'appelle une fonction verif_cocher_classe()
    mais je ne domine pas du tout mon sujet ;((

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function verif_cocher_classe() { //v3.0
      var c;
      c=0;
      var cases = document.getElementsByTagName('input');   // on recupere tous les INPUT
       for(var i=0; i<cases.length; i++)  {     // on les parcourt
           if(cases[i].type == 'checkbox')        // si on a une checkbox...
    	     {  
             if (cases[i].checked == 'on') {   	//si la case est cochee, envoi du formulaire		
    		        document.forms['form1'].submit;cn++;return false;
    				} 
    		 }
       }
       if  (c==0) {alert("Cocher au moins une classe"); } 			
    }
    Pouvez vous m'aider à la vérifier ?
    Merci à tous

  2. #2
    Membre averti Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut
    salut,

    Essaye ca ?

    1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return verifier()"
    2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function verifier() {
      var cases = document.getElementsByTagName('input');   // on recupere tous les INPUT
       for (var i=0; i<cases.length; i++)  {     // on les parcourt
           if(cases[i].type == 'checkbox')        // si on a une checkbox...
    	     {  
             if (cases[i].checked == 'on') {   	//si la case est cochee, envoi du formulaire		
    		        return true;
    				} 
    		 }
       }
       alert("Cocher au moins une classe");
       return false; 	
    }

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Dans tous les cas, le message d'alerte s'affiche et le formulaire n'est pas envoyé

    Est-ce-que ce code est bien valide?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (cases[i].checked == 'on')

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 24
    Points
    24
    Par défaut
    Peux tu essayer cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (cases[i].checked == 'true')

  5. #5
    Membre averti Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut
    Ca c'est pas sur !

    Essaye juste Sinon fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(cases[i].checked)
    pour voir la valeur

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Pas mieux

    On doit pouvoir tester la valeur retournée si coché... ? on true ...

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 24
    Points
    24
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(cases[i].checked)
    Ca donne quoi?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Le alert renvoie true ou false ... et malgre le code ci-dessous, j'ai le alert 'cocher au moins une case' qui s'affiche dans les deux cas (coché ou non )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function verifier() {
      var cases = document.getElementsByTagName('input');   // on recupere tous les INPUT
       for (var i=0; i<cases.length; i++)  {     // on les parcourt
           if(cases[i].type == 'checkbox')        // si on a une checkbox...
    	     {  
             if (cases[i].checked=='true') {  	//si la case est cochee, envoi du formulaire		
    		        return true;
    				}; 
    		 };
     
       };
       alert("Cocher au moins une classe");
       return false; 	
    }

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 24
    Points
    24
    Par défaut
    Essai cela ca devrait fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function verifier() {
      var cases = document.getElementsByTagName('input');   // on recupere tous les INPUT
       for (var i=0; i<cases.length; i++)  {     // on les parcourt
           if(cases[i].type == 'checkbox')        // si on a une checkbox...
    	     {  
             if (cases[i].checked==true) {  	//si la case est cochee, envoi du formulaire		
    		        return true;
    				}; 
    		 };
     
       };
       alert("Cocher au moins une classe");
       return false;

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Avec ceci sans les quotes sur le true
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (cases[i].checked==true)
    le formulaire est validé à chaque fois meme si non coché ....

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 24
    Points
    24
    Par défaut
    Et quand tu n'en coche aucune tu n'as aucun true qui s'affiche lors des alerts?

  12. #12
    Membre averti Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut
    Peux tu exécuter ce code et nous dire le résultat :

    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
     
    function count() {
    	var chk = 0;
    	var nb = 0;
    	var cases = document.getElementsByTagName('input');
    	for (var i=0; i<cases.length; i++) { 
    		if (cases[i].type == 'checkbox') { 
    			chk++; 
    	        if (cases[i].checked) {	
    				nb++;
    			}
    		}
    	}
    	alert(chk + " checkbox dont "+nb+" de cochée(s)");
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onclick="count()" value=" GO " />

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Oui, c'était bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (cases[i].checked==true)
    Est-ce possible de ne pas prendre encompte dans ce test une checkbox dont le name est "online" ?

    en faisant qq chose du genre ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(cases[i].type == 'checkbox') AND (cases[i].name <> "online")
    Est-ce possible ?

  14. #14
    Membre averti Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (cases[i].checked==true)
    ouc'est la même chose !!

    ---> en js c'est comme en C/Java/.... c'est

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Superbe !

    Un grand merci à tous

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

Discussions similaires

  1. [IP-2007] Tester BDD avant envoi de formulaire
    Par saxophtrion dans le forum InfoPath
    Réponses: 2
    Dernier message: 24/04/2012, 10h48
  2. [CKEditor] Tester si le champ est vide avant envoi du formulaire
    Par Xrris dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 17/04/2009, 11h59
  3. Insérer une valeur dans value avant envoi du formulaire
    Par delma dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/02/2008, 15h07
  4. [debutant] test sur champ de formulaire vide
    Par eyango dans le forum Access
    Réponses: 1
    Dernier message: 25/08/2006, 18h17
  5. verrification avant envoi de formulaire
    Par ph_anrys dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/11/2005, 16h49

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