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 :

[POO] objet requis dans choix de bouton radio


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 70
    Points
    70
    Par défaut [POO] objet requis dans choix de bouton radio
    Bonjour,

    J'ai trois boutons radios portant le meme nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type="radio" value = "0" name = "sel_inser" onclick="openclose2(this)" CHECKED>Structure
     <input type="radio" value = "1" name = "sel_inser" onclick="openclose2(this)">Fonction<br \>
     <input type="radio" value = "2" name = "sel_inser" onclick="openclose2(this)">Population<br \><br \>';
    et mon script js :
    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
     
     function openclose2(check) 
         { 
    	  var str = document.getElementById( "saisie1" );
    	  var fon = document.getElementById( "saisie2" );
    	  var pop = document.getElementById( "saisie3" );
    	  var selection2 = document.getElementById( "sel_inser" );
         alert(selection2.value);
    	  if(selection2.checked && selection2.value == 0) 
          {  
    	   str.style.display = "inline";
     
    	   fon.style.display = "none";
    	   pop.style.display = "none";
          }
     
    	  if(selection2.checked && selection2.value == 1) 
          { 
    	   str.style.display = "none";
    	   fon.style.display = "inline";
    	   pop.style.display = "none"; 
          }
    	  if(selection2.checked && selection2.value == 2) 
          { 
    	   str.style.display = "none";
    	   fon.style.display = "none";
    	   pop.style.display = "inline";
          }
    	 }
    Lorsque j'essaie de sélctionner un autre bouton radio, il ne ne passe rien (alors que la zone de saisie spécifique devrait s'afficher) mais quand je reviens sur le bouton d'origine(structure), j'ai le message d'erreur "objet requis)

    Enfin voila les differentes parties à afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id = "saisie1" style="DISPLAY:INLINE">Quel nom donner à cette structure ? : <input type = "text" name = "nomstr" maxlength = "40" size = "30"></div>
    les deux autres sont style="DISPLAY:NONE


    Je ne comprends plus rien. Quelle est l'erreur?
    Merci

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    getElementById marche avec l'id.

    Donc il faut préciser un id si tu veux que ça fonctionne, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="truc" id="monid" value="bla">
    Il existe aussi la fonction getElementByName qui dans ton cas marchera.

    Je pense que ton erreur vient de là, A+
    K

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 70
    Points
    70
    Par défaut
    ça ne marche toujours pas.

    ça m'énerve de passer trois heures pour un petit truc.

    Est ce que j'utilise une bonne méthode?

    Merci

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Je comprend que ça t'enerve.

    Peux-tu poster ton code complet ?
    K

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 70
    Points
    70
    Par défaut
    ok pas de problème

    pour la fonction js
    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 openclose2(check) 
         { 
    	  var str = document.getElementById( "saisie1" );
    	  var fon = document.getElementById( "saisie2" );
    	  var pop = document.getElementById( "saisie3" );
    	  var selection2 = document.getElementById( "sel_inser" );
     
    	  if(selection2.checked && selection2.value == 0) 
          {  
    	   str.style.display = "inline";
     
    	   fon.style.display = "none";
    	   pop.style.display = "none";
          }
     
    	  if(selection2.checked && selection2.value == 1) 
          { alert("fon"); 
    	   str.style.display = "none";
    	   fon.style.display = "inline";
    	   pop.style.display = "none"; 
          }
    	  if(selection2.checked && selection2.value == 2) 
          { alert("pop"); 
    	   str.style.display = "none";
    	   fon.style.display = "none";
    	   pop.style.display = "inline";
          }
    	 }
    pour le html
    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
     
     <input type="radio" value = "0" id = "sel_inser" onclick="openclose2(this)" CHECKED>Structure
     <input type="radio" value = "1"   id = "sel_inser" onclick="openclose2(this)">Fonction<br \>
     <input type="radio" value = "2"  id = "sel_inser" onclick="openclose2(this)">Population<br \><br \>
     
    <div id = "saisie1" style="DISPLAY:INLINE">
    <input type = "text" name = "nomstr" maxlength = "40" size = "30">
    </div>
     
    <div id = "saisie3" style="DISPLAY:NONE">
    <table><tr><td><input type = "text" name = "nomloc" maxlength = "40" size = "30"></td></tr>
    <tr><td>Numéro</td><td><input type = "text" name = "num_loc"   maxlength = "10" size = "9"></td></tr>
     <tr><td>Fax</td><td><input type = "text" name = "fax_loc" maxlength = "4"  size = "2"></td></tr>
     <tr><td>Bip</td><td><input type = "text" name = "bip_loc" maxlength = "4"  size = "2"></td></tr>
     <tr><td>Detc</td><td><input type = "text" name = "detc_loc" maxlength = "4"  size = "2"></td></tr></table>
     </div>
     
    <div id = "saisie2" style="DISPLAY:NONE">
    <table><tr><td>Fonction</td><td><input type = "text" name = "fonction_t" maxlength = "40" size = "30"></td></tr>
     <tr><td>Nom</td><td><input type = "text" name = "nom_t" maxlength = "30" size = "20"></td></tr>
     <tr><td>Pr&eacute;nom</td><td><input type = "text" name = "prenom_t" maxlength = "30"  size = "20"></td></tr>
     <tr><td>Matricule</td><td><input type = "text" name = "matricule_t" maxlength = "6" size = "4"></td></tr>
     <tr><td>Numéro</td><td><input type = "text" name = "num_t"   maxlength = "10" size = "9"></td></tr>
     <tr><td>Fax</td><td><input type = "text" name = "fax_t" maxlength = "4"  size = "2"></td></tr>
     <tr><td>Bip</td><td><input type = "text" name = "bip_t" maxlength = "4"  size = "2"></td></tr>
     <tr><td>Detc</td><td><input type = "text" name = "detc_t" maxlength = "4"  size = "2"></td></tr></table>
     </div>
    Merci pour l'aide[/code]

  6. #6
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Il y a bien une balise form ? ( bien que je ne pense pas que le problème vienne de là, sans balise form, un formulaire est un peu inutile )

    Essaie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var selection2 = document.getElementByName( "sel_inser" );
    En mettant à nouveau tes checkbox en name au lieu d'id. Je pense que pour un formulaire, tu es obligé d'avoir les attributs name renseignés de toutes manières.

    Sinon, il te reste une autre solution moins propre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var selection2 = document.nomForm.sel_inser;
    Avec nomForm étant l'attribut name de ta balise <form>.
    K

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 70
    Points
    70
    Par défaut
    je te remercie beaucoup.
    Je crois que tu as raison et je me rends compte que mon code est ambigu.

    J'ai trouvé une autre méthode qui cette fois ci marche rapidement.


    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 openclose3(admannu) 
         { 
    	 var str = document.getElementById( "saisie1" );
    	  var fon = document.getElementById( "saisie2" );
    	  var pop = document.getElementById( "saisie3" );
     
     if(admannu.sel_inser[0].checked){
    	 str.style.display = "inline";
    	 fon.style.display = "none";
    	 pop.style.display = "none";
    	 }
     
    	 if(admannu.sel_inser[1].checked){
    	 str.style.display = "none";
    	 fon.style.display = "inline";
    	 pop.style.display = "none";
    	 }
     
    	 if(admannu.sel_inser[2].checked){
    	  str.style.display = "none";
    	 fon.style.display = "none";
    	 pop.style.display = "inline";
    	 }
    le nom du formulaire est admannu, le reste ne change pas

    Peux tu me dire ce que tu en penses, s'il te plaît?

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

Discussions similaires

  1. contenu de div qui change selon choix dans liste de boutons radios ?
    Par cuisto44000 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/12/2008, 16h10
  2. Pb d'objet requis dans création automatique de macros
    Par vally74 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/05/2008, 11h57
  3. [POO] objet mysql dans un autre objet
    Par ibasticour dans le forum Langage
    Réponses: 5
    Dernier message: 17/05/2008, 23h19
  4. [POO] Objet requis
    Par ranell dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/05/2007, 14h18
  5. Réponses: 2
    Dernier message: 01/02/2006, 12h52

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