Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1740 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  masquer une checkbox à partir d'un radioButton

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

masquer une checkbox à partir d'un radioButton

n°1697370
titi04
Posté le 05-03-2008 à 10:16:47  profilanswer
 

Bonjour,
 
Je souhaite afficher ou masquer une checkbox à partir d'un RadioButton et codé en javascript.
La checkbox prend un id en paramètre = chk.
J'ai une liste de RadioButton appellée SelectionP, j'ai attribué à cette liste un nom=selection et lorsque que je clique sur un bouton ça lance la fonction suivante:
 
function displayCheck() {
 zone = document.getElementById('chk');
 button = document.getElementsByName('selection');//récupère le nom  
 
 if (button == "oui" && button.selected == true){
  zone.style.visibility='hidden';
 }
}
 
J'ai l'impression que le code est bon mais lorsque que je clique sur le bouton nommé "oui", ceci ne masque pas la checkbox.
 
Merci d'avance pour votre aide
 
Cordialement,
 
titi04

mood
Publicité
Posté le 05-03-2008 à 10:16:47  profilanswer
 

n°1697374
masklinn
í dag viðrar vel til loftárása
Posté le 05-03-2008 à 10:19:45  profilanswer
 

Je te suggère d'apprendre ce que fait getElementsByName, parce que c'est sûrement pas ce que tu penses.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1697375
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-03-2008 à 10:20:49  profilanswer
 

getElementsByName retourne un tableau d'elements. Il te faut parcourir celui ci.
Il manque également un value à ton test == "oui"
edit:  [:benou_grilled]


Message édité par anapajari le 05-03-2008 à 10:21:55

---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1697399
titi04
Posté le 05-03-2008 à 10:40:59  profilanswer
 

J'ai changé ma fonction:
 
function displayCheck() {
 zone = document.getElementById('chk');
 button = document.getElementsByName('selection');  
 
for (i=0;i<button.length;i++){
    if (button[i].selected == true && button[i].value == 'oui'){
        zone.style.visibility='hidden';
       }
    }
}  
 
Je suis désolée pour ces erreurs mais je débute !
Sinon, en changeant mon code, ceci ne change rien, la checkbox ne se masque pas. Faut-il que j'enlève le coche par défaut de ma RadioButton.

n°1697405
babasss
Posté le 05-03-2008 à 10:47:49  profilanswer
 

Dans tous les bons navigateurs (dans Firefox en tout cas), il existe une console d'erreurs qui t'indique les erreurs de javascript...
Tu vas sur ta page.  
OUtils -> Console d'erreurs -> Onglet "Erreurs" (tu cliques un coup sur "Effacer" pour purger les anciennes erreurs)
Tu recharges ta page et tu cliques sur ton bouton ou sur l'endroit ou tu as mis ton code...
Si ca ne marche pas (même si ca marche tu peux le faire), tu ouvres la console d'erreurs et tu débugues en fonction de ce qui a été dit dans la console...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1697416
masklinn
í dag viðrar vel til loftárása
Posté le 05-03-2008 à 10:54:21  profilanswer
 

titi04 a écrit :

J'ai changé ma fonction:
 
function displayCheck() {
 zone = document.getElementById('chk');
 button = document.getElementsByName('selection');  
 
for (i=0;i<button.length;i++){
    if (button[i].selected == true && button[i].value == 'oui'){
        zone.style.visibility='hidden';
       }
    }
}


C'est toujours n'importe quoi.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1697985
titi04
Posté le 06-03-2008 à 09:54:34  profilanswer
 

masklinn a écrit :


C'est toujours n'importe quoi.


 
Pourrais tu m'indiquer ce qui ne vas pas dans mon code s'il te plaît?

n°1697991
masklinn
í dag viðrar vel til loftárása
Posté le 06-03-2008 à 10:02:30  profilanswer
 

Je te l'ai déjà indiqué dans mon premier post.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1697997
titi04
Posté le 06-03-2008 à 10:08:08  profilanswer
 

getElementsByName retourne un tableau d'éléments comme l'a suggéré anapajari. Donc, je parcours mon tableau dans la fonction.

n°1698010
masklinn
í dag viðrar vel til loftárása
Posté le 06-03-2008 à 10:16:03  profilanswer
 

titi04 a écrit :

getElementsByName retourne un tableau d'éléments comme l'a suggéré anapajari.


C'est juste, mais c'est extrèmement incomplet, et c'est sur la partie manquante que tu te plantes.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
mood
Publicité
Posté le 06-03-2008 à 10:16:03  profilanswer
 

n°1698014
titi04
Posté le 06-03-2008 à 10:19:10  profilanswer
 

Je ne pourrais pas avoir un peu plus d'aide de ta part car pour le moment je bloque. J'ai bien cherché ce que faisais getElementsByName mais je ne vois pas ce que tu veux dire.

n°1698020
masklinn
í dag viðrar vel til loftárása
Posté le 06-03-2008 à 10:26:37  profilanswer
 

titi04 a écrit :

Je ne pourrais pas avoir un peu plus d'aide de ta part car pour le moment je bloque. J'ai bien cherché ce que faisais getElementsByName mais je ne vois pas ce que tu veux dire.


http://developer.mozilla.org/en/do [...] sByTagName

Citation :

Returns a list of elements with the given tag name. The subtree underneath the specified element is searched, excluding the element itself.


 
Et on peut noter que "tag name" ne signifie pas "attribut name dans le tag"
http://developer.mozilla.org/en/do [...] nt.tagName

Citation :

Given the following markup:
 

Code :
  1. <span id="born">When I was born...</span>


and the following script
 

Code :
  1. var span = document.getElementById("born" );
  2. alert(span.tagName);


In XHTML (or any other XML format), "span" would be alerted. In HTML, "SPAN" would be alerted instead.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1698034
anapajari
s/travail/glanding on hfr/gs;
Posté le 06-03-2008 à 10:34:16  profilanswer
 

Masklinn, il utilise getElementsByName ( http://developer.mozilla.org/en/do [...] entsByName ) et pas getElementsByTagName.
Je dis ça je dis rien  [:nedurb]

Message cité 1 fois
Message édité par anapajari le 06-03-2008 à 10:35:54

---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1698045
masklinn
í dag viðrar vel til loftárása
Posté le 06-03-2008 à 10:50:06  profilanswer
 

anapajari a écrit :

Masklinn, il utilise getElementsByName ( http://developer.mozilla.org/en/do [...] entsByName ) et pas getElementsByTagName.
Je dis ça je dis rien  [:nedurb]


Oshit, j'ai loosé sur le coup, j'utilise tellement pas cette fonction que je me souvenais même plus de son existence [:prozac]  
 
Bon ben désolé titi04, j'ai merdé sur le coup :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1698072
babasss
Posté le 06-03-2008 à 11:15:34  profilanswer
 

D'abord, il faut que tu apprennes à récupérer les valeurs de ta liste déroulante et savoir quels radiobuttons est cochés.
Tu enlèves ta boucle. Tu vas dans Google et tu tapes :

  • récupérer valeurs liste déroulante javascript puis
  • récupérer valeurs rediobutton javascript  

Et tu sauras comment récupérer les valeurs de tes boutons, listes...
Une fois que tu auras réussi cette étape, tu peux revenir vers nous si tu continues à avoir des problèmes...
 


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1698141
anapajari
s/travail/glanding on hfr/gs;
Posté le 06-03-2008 à 12:07:39  profilanswer
 

badass> quand tu sauras lire un topic, tu pourra te permettre ce genre de post [:nedurb]
A quel endroit as-tu vu qu'il parlait d'une liste déroulante???

 

titi04>tu as juste une erreur dans ton code. Les "radios" n'ont pas de propriété selected mais une propriété checked, donc remplace:

Code :
  1. if (button[i].selected == true && button[i].value == 'oui'){


par

Code :
  1. if (button[i].checked == true && button[i].value == 'oui'){
 

Bon maintenant, reste que ta fonction est vraiment pas top :o
Vu que tu as, j'imagine, mis un click handler sur chacun de tes radio, je passerais l'objet cliqué en paramètres à la fonction afin de ne tester que celui-ci est s'éviter une boucle.

Message cité 2 fois
Message édité par anapajari le 06-03-2008 à 12:08:24

---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1698144
masklinn
í dag viðrar vel til loftárása
Posté le 06-03-2008 à 12:11:36  profilanswer
 

anapajari a écrit :

titi04>tu as juste une erreur dans ton code. Les "radios" n'ont pas de propriété selected mais une propriété checked, donc remplace:

Code :
  1. if (button[i].selected == true && button[i].value == 'oui'){


par

Code :
  1. if (button[i].checked == true && button[i].value == 'oui'){



J'aurais même tendance à passer par getAttribute() juste au cas où :o

 

et accessoirement, la valeur renvoyée par .checked n'est pas nécessairement "true" (et c'est pas censé être true en fait" ), ça marchera que sous IE :o

Message cité 1 fois
Message édité par masklinn le 06-03-2008 à 13:00:39

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1698152
babasss
Posté le 06-03-2008 à 12:21:39  profilanswer
 

anapajari a écrit :

badass> quand tu sauras lire un topic, tu pourra te permettre ce genre de post [:nedurb]  
A quel endroit as-tu vu qu'il parlait d'une liste déroulante???


Euh, qu'est ce que je t'ai fait ?  [:vinx2]  

  • Ma remarque à titi04 était sans animosité mais juste un constat que ce qu'il demande est assez courant sur le net et donc avec une petite recherche, il pouvait se débloquer un peu
  • Pour le coup, de la liste j'ai un peu trop vite lu la phrase de titi04 "J'ai une liste de RadioButton appellée SelectionP, j'ai attribué à cette liste un nom=selection "...

[HS]
Ca fait deux fois que tu déformes mon nom, quelle en est la cause ? On se connait ? On a gardé les cochons ensemble ? Une private joke qui ne fait rire que toi ?
[/HS]


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1698187
anapajari
s/travail/glanding on hfr/gs;
Posté le 06-03-2008 à 13:20:09  profilanswer
 

masklinn a écrit :

et accessoirement, la valeur renvoyée par .checked n'est pas nécessairement "true" (et c'est pas censé être true en fait" ), ça marchera que sous IE :o


euh.... .checked renvoit true/false pour un radio input sous tous les navs il me semble.  
qu'est ce que tu veux que ça renvoit d'autre?

babasss a écrit :

  • Ma remarque à titi04 était sans animosité mais juste un constat que ce qu'il demande est assez courant sur le net et donc avec une petite recherche, il pouvait se débloquer un peu

la mienne était également sans animosité [:spamafote]

babasss a écrit :

[HS]Ca fait deux fois que tu déformes mon nom, quelle en est la cause ? On se connait ? On a gardé les cochons ensemble ? Une private joke qui ne fait rire que toi ?
[/HS]


:jap: sorry, je croyais vraiment que c'était badass et pas babass
 
 


---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1698221
titi04
Posté le 06-03-2008 à 13:45:30  profilanswer
 

Merci pour tous vos conseils.
 
J'ai réussi à faire ce que je voulais grâce à vos remarques et donc la fonction donne:
 
function displayCheck() {
 zone = document.getElementById('chk');
 button = document.getElementsByName('selection');
 
 for (i=0;i<button.length;i++){
  if ((button[i].value == 'oui') && (button[i].checked == true)){
   zone.style.visibility = 'hidden';
   break;
  }
  else {
   zone.style.visibility = 'visible';
  }
 }
}
 
 

n°1698253
masklinn
í dag viðrar vel til loftárása
Posté le 06-03-2008 à 14:36:06  profilanswer
 

anapajari a écrit :


euh.... .checked renvoit true/false pour un radio input sous tous les navs il me semble.  
qu'est ce que tu veux que ça renvoit d'autre?


Lose v2 de ma part [:dawa]
 
C'est e.getAttribute("checked" ) qui renvoie null/"checked" dans tous les navigateurs, sauf MSIE qui renvoie true/false :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1698553
titi04
Posté le 06-03-2008 à 21:55:30  profilanswer
 


Je vous ai dit que ma fonction fonctionnait!
C'est toujours le cas mais seule la checkbox se masque, et j'aimerai que le texte qui lui est associé soit aussi masqué.
Mais pour l'instant ce n'est pas le cas...J'ai essayé avec objet.value...et d'autres aussi mais rien à faire.
Savez vous quel(s) objet ou fonction faut-il utiliser?
 
Merci encore

n°1698657
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-03-2008 à 09:23:00  profilanswer
 

tu mets ta checkbox et ton texte dans un container ( un div ou p ou ce que tu veux) et tu règles la visibilité de ce container


Message édité par anapajari le 07-03-2008 à 09:23:13

---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1698669
titi04
Posté le 07-03-2008 à 09:36:34  profilanswer
 

ok.
Merci

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  masquer une checkbox à partir d'un radioButton

 

Sujets relatifs
triple table et checkboxrécupérer le code HTMl à partir d'une page web
Sélectionner une colonne de données à partir d'un fichier TXTreload d'une frame a partir d'une autre. PHP/javascript
Remplir un tableau à partir d'un fichier - ifstream -Comment lancer GNUPLOT à partir d'un code en C++
Problème avec checkboxTrouver numéro de la semaine à partir d'une date
afficher/masquer une divRecuperer les coordonées d'un point dans un textBox
Plus de sujets relatifs à : masquer une checkbox à partir d'un radioButton


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR