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 :

Au moins un checkbox obligatoire


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 30
    Points
    30
    Par défaut Au moins un checkbox obligatoire
    Bonjour j'ai fais une fonction qui doit vérifier si les checkbox du formulaire sont selectionné mais elle ne marche pas, elle ne renvoie rien

    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
     
    function selection_obligatoire_checkbox(id,nb_page)
    	{
    	id_checkbox="id_page"+id;
    	for(i=0;i<=nb_page;i++)
    		{
    		if(document.getElementById.id_checkbox[i].checked==true)
    			{
    			alert("Ok");
    			}
    		else
    			{
    			alert("Selection obligatoire!");
    			}
    		}
    	}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form action='rapport.php' method='post'>
     
    <?php
    echo "<input type='checkbox' name='id_page".$compteur_name_page."' value=".$num_page.">";
    ?>
    <input type='submit' value='Générer un rapport' name="envoyer_rapport" OnClick="selection_obligatoire_checkbox($compteur_name_page,$nb_pages)"/>
     
    </form>

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Meme s'il y a pas beaucoup d'infos sur les checkbox, j'ai essayé les fonctions données dans le lien et ça ne marche toujours pas :

    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
     
    function VerifForm(form)
    { 
    var AllIsOk=0;
     
    for (var i=0; i<form.elements.length; i++) 
    	{
    	var inp = form.elements[i]; //on recupere le champ dans une variable referente, cela evite de se trimballer avec 12ko de code :D
    	if (inp.className.match(/\brequired\b/)) 
    		{ //on check si l'élément a la classe required.
    		switch(inp.type) { // s'il a la classe on regarde son type et on sort une erreur en fonction de son type
    			case "text":  
    			case "file":
    			case "password":
    			case "textarea":
    			if (inp.value=="") AllIsOk++;
    			break;
    			case "checkbox":
    			case "radio":
    			if (!inp.checked) AllIsOk++;
    			break;
    			case "select-one":
    			case "select-multiple":
    			if(inp.selectedIndex==0) AllIsOk++;
    			break;
    			}
    		}
    	}
    return (AllIsOk++)
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form name="myform" action="javascript:alert('Envoyé')" onsubmit="return VerifForm(this)" />
     
    echo "<input type='checkbox' class='required' name='id_page".$compteur_name_page."' value=".$num_page.">";
     
    <input type='submit' value='Générer un rapport' name="envoyer_rapport"/>

    J'ai l'alerte "Envoyé" alors que j'ai rien coché..

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oui, tu renvoies 0 ou 1 alors qu'il faut retourner false pour empêcher le submit...
    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
    function VerifForm(form)
    { 
    var AllIsOk=true;
     
    for (var i=0; i<form.elements.length; i++) 
    	{
    	var inp = form.elements[i]; //on recupere le champ dans une variable referente, cela evite de se trimballer avec 12ko de code :D
    	if (inp.className.match(/\brequired\b/)) 
    		{ //on check si l'élément a la classe required.
    		switch(inp.type) { // s'il a la classe on regarde son type et on sort une erreur en fonction de son type
    			case "text":  
    			case "file":
    			case "password":
    			case "textarea":
    			if (inp.value=="") AllIsOk=false;
    			break;
    			case "checkbox":
    			case "radio":
    			if (!inp.checked) AllIsOk=false;

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Dans ce cas le formulaire n'envoie aucun message, rien se passe..

    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
     
    function VerifForm(form)
    { 
    var AllIsOk=true;
     
    for (var i=0; i<form.elements.length; i++) 
    	{
    	var inp = form.elements[i]; //on recupere le champ dans une variable referente, cela evite de se trimballer avec 12ko de code :D
    	if (inp.className.match(/\brequired\b/)) 
    		{ //on check si l'élément a la classe required.
    		switch(inp.type) 
    			{ // s'il a la classe on regarde son type et on sort une erreur en fonction de son type
    			break;
    			case "checkbox":
    			case "radio":
    			if (!inp.checked) AllIsOk=false;
    			break;
    			}
    		}
    	}
    return (AllIsOk++)
    }

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    ???
    Ce serait plutôt :

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Mais pourquoi ça marche pas!!!

    j'ai le message "ok" dans les deux cas (coché ou pas coché)

    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
     
    function VerifForm(form)
    { 
    var AllIsOk=true;
     
    for (var i=0; i<form.elements.length; i++) 
    	{
    	var inp = form.elements[i]; //on recupere le champ dans une variable referente, cela evite de se trimballer avec 12ko de code :D
    	if (inp.className.match(/\brequired\b/)) 
    		{ //on check si l'élément a la classe required.
    		switch(inp.type) 
    			{ // s'il a la classe on regarde son type et on sort une erreur en fonction de son type
    			break;
    			case "checkbox":
    			case "radio":
    			if (!inp.checked) AllIsOk=false;
    			break;
    			}
    		}
    	}
    return (AllIsOk)
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <form name="myform" action="javascript:alert(ok)" onsubmit="return VerifForm(this)" />
     
    // Nombre de checkbox
    echo "<input type='hidden' name='nombrepage' value='$nb_pages'>";
     
    echo "<input type='checkbox' class='required' name='id_page".$compteur_name_page."' value=".$num_page.">";
     
    <input type='submit' value='Générer un rapport' name="envoyer_rapport"/>

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    switch(inp.type) 
    			{ // s'il a la classe on regarde son type et on sort une erreur en fonction de son type
    			break;
    			case "checkbox":
    			case "radio":
    			if (!inp.checked) AllIsOk=false;
    			break;
    			}
    		}
    il y a un break un peu prématuré dans ton switch...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    switch(inp.type) 
    			{ 
    			case "checkbox":
    			case "radio":
    			if (!inp.checked) AllIsOk=false;
    			break;
    			}
    		}

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Ce code il est nul

Discussions similaires

  1. [2.x] Sélection d'au moins un checkbox obligatoire
    Par Mister Nono dans le forum Symfony
    Réponses: 2
    Dernier message: 20/05/2014, 10h03
  2. Verifier si au moins une checkbox est cochée
    Par AyManoVic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/01/2011, 08h41
  3. Checkbox obligatoire au submit
    Par Vanlen dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/11/2010, 17h17
  4. Au moins un checkbox est cocher dans un gridview
    Par loubna_drime dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/06/2009, 00h24
  5. Cocher au moins une checkbox dont son nombre varie
    Par Seb981 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/08/2007, 15h02

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