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 :

Fonction non définie (alors qu'elle l'est) - Cocher toutes les cases


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut Fonction non définie (alors qu'elle l'est) - Cocher toutes les cases
    Bonjour,

    J'utilise deux fonctions dans mon script JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript" language="javascript">
    	function coche_rad_etape1(p_num)
    	{	
                    // code de la fonction	
    	}			
     
    	function coche_tous(p_bloc)
    	{
    		// code de la fonction											
    	}		
    </script>
    Et je les appelle tous simplement lors d'un click sur une case à cocher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" onClick="coche_tous('bloc_ck_pdt');" name="ck_tous" value="tous" />
    Or, lorsque je clique sur la checkbox, le débuggueur JS dit que la fonction n'est pas définie !

    Auriez-vous une idée du pourquoi ?
    Merci d'avance.
    @+

    PS : les codes JS sont aussi dans le body
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 442
    Points : 475
    Points
    475
    Par défaut
    Peut-être que c'est le onclick qui n'est pas détecté parce que sa casse est mauvaise, il faut l'écrire tout en minuscule.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    J'ai déjà appelé des fonctions en mettant la casse à "onClick" et cela marchait.

    J'ai néanmoins mis un "C" minuscule, mais j'ai toujours le même problème...
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    J'ajoute aussi que lorsque je mets la 2e fonction en commentaire, ma première fonction marche !

    Voici donc le code de ma 2e fonction :

    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
    function coche_tous(p_bloc)
    {
    	var ck = document.getElementById(p_bloc).firstChild;	// 1ere checkbox
    	var etat;
     
    	// on initialise l état
    	if (document.frm.ck_tous.checked == "checked")
    	{
    		etat = "";
    	}	
    	else
    	{
    		etat = "checked";
    	}			
     
    	while (ck != null)
    	{
    		if ((ck.nodeName=="INPUT") && (ck.getAttribute("type")=="checkbox")))
    		{
    			document.getElementById(ck.getAttribute("id")).checked = etat;
    		}
    		ck = ck.nextSibling;
    	}							
    }
    Apparemment le problème serait la boucle, mais je ne sais pas comment le détecter et le résoudre.
    NB : Cette fonction sert à cocher toutes les checkbox d'un bloc dont le nom est passé en paramètre
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

  5. #5
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Ta premiere fonction comporte des erreurs de syntaxe, cela bloque l'interpreteur JS qui du coup ne definit pas la seconde. Utilise ff pour trouver l'endroit ou ca se passe mal....
    Indice : tu ferme beaucoup de parentheses, particulierement sur une de tes clause 'if'....

  6. #6
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    J'ai détecté d'où vient l'erreur : la boucle pose en effet problème.

    Comment faire pour parcourir toutes les checkbox d'un bloc afin de les (dé)cocher ?
    Merci d'avance.
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

  7. #7
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    salut !
    si les checkbox on t une logique de numerotation (id="check1" pour le premier, ..., id="checkn pour le nième") tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var i=1; i<=n; i++)document.getElementById("check"+i).checked=true /*ou false*/
    et effectuer tous les tests que tu veux...
    @+
    Que votre situation soit bonne ou mauvaise, cela va changer...

  8. #8
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    Merci de ton aide.

    Voici ma fonction définitive et qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function coche_tous(p_nb)
    {
    	// on parcourt toutes les checkbox
    	for (var i=1; i<=p_nb; i++)
    	{
    		document.getElementById("ck_"+i).checked = document.frm_reserves.ck_tous.checked;
    	}								
    }
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 13/03/2007, 11h00
  2. [Wamp] Appel de fonction non défini
    Par morphine63 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 29/10/2006, 10h02
  3. Réponses: 2
    Dernier message: 01/06/2006, 14h54
  4. id non défini alors qu'il est utilisé
    Par flambo88 dans le forum Langage
    Réponses: 11
    Dernier message: 15/01/2006, 01h36
  5. fonction non définie
    Par ston dans le forum Access
    Réponses: 11
    Dernier message: 12/12/2005, 16h02

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