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 :

[DOM] Propriété inaccessible de tableau checkbox


Sujet :

JavaScript

  1. #1
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut [DOM] Propriété inaccessible de tableau checkbox
    Je ne comprends pas pourquoi l'interprêteur JS me retourne une erreur typevis has no properties ?
    J'ai regarder la structure DOM de l'objet typevis, il semblerait qu'ils soient vu comme 5 objets distincts composés chacun d'un tableau de 5 checkbox ??. je ne sais pas comment faire pour accéder aux propriétés ?
    Alors que php les vois comme une tableau unique !!

    Merci de votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form action="lapage.php" method="post" onSubmit="return Check_Form(this);">
    Type de visite:
    	V1<input type=checkbox name=typevis[] value=V1>
    	V2<input type=checkbox name=typevis[] value=V2>
    	V3<input type=checkbox name=typevis[] value=V3>
    	V4<input type=checkbox name=typevis[] value=V4>
    	V5<input type=checkbox name=typevis[] value=V5>
    	<input type=submit name=bouton value=Ok>
    </form>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //Control du formulaire de saisie
    function Check_Form(my_form){
     var typevis = myform.typevis;
     var txt="";
     
     for(i=0; i < typevis.length; i++){
     
     	if(typevis[i].checked){	
     		txt=txt + typevis[i].value + " ";
     	}
      }
     alert("Vis="+txt);
    }

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    les valeurs des propriétés HTML doivent être entourées de quotes (simples ou doubles).
    Tu n'aurais pas eu ce problème sans les [] (inutiles à mon avis)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form action="lapage.php" method="post" onSubmit="return Check_Form(this);">
    Type de visite:
    	V1<input type=checkbox name="typevis" value=V1>
    	V2<input type=checkbox name="typevis" value=V2>
    	V3<input type=checkbox name="typevis" value=V3>
    	V4<input type=checkbox name="typevis" value=V4>
    	V5<input type=checkbox name="typevis" value=V5>
    	<input type=submit name=bouton value=Ok>
    </form>
    A+

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    ... et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var typevis = myform.elements["typevis"];
    A+

  4. #4
    Membre chevronné Avatar de htr999
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 331
    Par défaut
    plus précis :
    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
    <head>
    <script>
    //Control du formulaire de saisie
    function Check_Form(myform){
    	var typevis = myform.elements["typevis[]"];
    	var txt = "";
     
    	for(i=0; i < typevis.length; i++){	
    		if (typevis[i].checked)
    			txt=txt + typevis[i].value + " ";
    	}
    	alert("Vis="+txt);
    }
    </script>
    </head>
     
    <body>
    <form name="formulaire" action="#" method="get">
    Type de visite:
    	V1<input type="checkbox" name="typevis[]" value="V1">
    	V2<input type="checkbox" name="typevis[]" value="V2">
    	V3<input type="checkbox" name="typevis[]" value="V3">
    	V4<input type="checkbox" name="typevis[]" value="V4">
    	V5<input type="checkbox" name="typevis[]" value="V5">
    	<input type="button" value="Ok" onClick="Check_Form(document.formulaire);">
    </form>
    </body>

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par htr999 Voir le message
    plus précis :
    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
    <head>
    <script>
    //Control du formulaire de saisie
    function Check_Form(myform){
    	var typevis = myform.elements["typevis[]"];
    	var txt = "";
     
    	for(i=0; i < typevis.length; i++){	
    		if (typevis[i].checked)
    			txt=txt + typevis[i].value + " ";
    	}
    	alert("Vis="+txt);
    }
    </script>
    </head>
     
    <body>
    <form name="formulaire" action="#" method="get">
    Type de visite:
    	V1<input type="checkbox" name="typevis[]" value="V1">
    	V2<input type="checkbox" name="typevis[]" value="V2">
    	V3<input type="checkbox" name="typevis[]" value="V3">
    	V4<input type="checkbox" name="typevis[]" value="V4">
    	V5<input type="checkbox" name="typevis[]" value="V5">
    	<input type="button" value="Ok" onClick="Check_Form(document.formulaire);">
    </form>
    </body>


    Non !

    Pour le reste, la solution initiale était largement préférable (avec type="submit" et onsubmit)

    A+

  6. #6
    Membre chevronné Avatar de htr999
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 331
    Par défaut
    salut
    c'était juste une solution pour qu'il voie ce que donne l'alert. il pourrait l'adapter à son code. sinon je suis d'accord avec toi que l'on ne fait jamais un onClick pour un formulaire enfin c'est moins propre

    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
    <head>
    <script>
    //Control du formulaire de saisie
    function Check_Form(myform){
    	var typevis = myform.elements["typevis[]"];
    	var txt = "";
     
    	for(i=0; i < typevis.length; i++){	
    		if (typevis[i].checked)
    			txt=txt + typevis[i].value + " ";
    	}
    	alert("Vis="+txt);
    }
    </script>
    </head>
     
    <body>
    <form name="formulaire" action="lapage.php" method="post" onSubmit="return Check_Form(this);">
    Type de visite:
    	V1<input type="checkbox" name="typevis[]" value="V1">
    	V2<input type="checkbox" name="typevis[]" value="V2">
    	V3<input type="checkbox" name="typevis[]" value="V3">
    	V4<input type="checkbox" name="typevis[]" value="V4">
    	V5<input type="checkbox" name="typevis[]" value="V5">
    	<input type="submit" value="Ok">
    </form>
    </body>

  7. #7
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    les valeurs des propriétés HTML doivent être entourées de quotes (simples ou doubles).
    Effectivement ceci peut être génant quand une des propriètés peut contenir un espace.
    Mais la plupart du temps j'évite de mettre des quotes comme j'évite les espaces il n'y a pas de petites économies de bandes passage avec Edge ou GPRS.

  8. #8
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par htr999 Voir le message
    plus précis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var typevis = myform.elements["typevis[]"];
    Cette notation que je ne connaissais pas était la cause principale du nom fonctionnement de mon code.
    Merci htr999.

    Sauf qu'au bout du compte j'ai fait tout ceci pour rien car le JS du navigateur du téléphone portable que j'utilise ne supporte pas les tableaux de Checkbox
    Donc je gère la saisie avec php.

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

Discussions similaires

  1. Tableau, CheckBox et couleur
    Par DaisyVIP dans le forum ASP.NET
    Réponses: 12
    Dernier message: 11/01/2008, 15h56
  2. [DOM] proprité firstChild
    Par yassou dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 18/09/2007, 11h23
  3. [DOM] Ajout dynamique de tableau
    Par sacados1 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 14/06/2007, 16h38
  4. [DOM] PB Suppression ligne tableau sur IE
    Par speedev dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/11/2006, 14h41
  5. Réponses: 2
    Dernier message: 08/08/2006, 14h52

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