masquer une checkbox à partir d'un radioButton - HTML/CSS - Programmation
Marsh Posté le 05-03-2008 à 10:19:45
Je te suggère d'apprendre ce que fait getElementsByName, parce que c'est sûrement pas ce que tu penses.
Marsh Posté le 05-03-2008 à 10:20:49
getElementsByName retourne un tableau d'elements. Il te faut parcourir celui ci.
Il manque également un value à ton test == "oui"
edit:
Marsh Posté le 05-03-2008 à 10:40:59
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.
Marsh Posté le 05-03-2008 à 10:47:49
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...
Marsh Posté le 05-03-2008 à 10:54:21
titi04 a écrit : J'ai changé ma fonction: |
C'est toujours n'importe quoi.
Marsh Posté le 06-03-2008 à 09:54:34
masklinn a écrit : |
Pourrais tu m'indiquer ce qui ne vas pas dans mon code s'il te plaît?
Marsh Posté le 06-03-2008 à 10:02:30
Je te l'ai déjà indiqué dans mon premier post.
Marsh Posté le 06-03-2008 à 10:08:08
getElementsByName retourne un tableau d'éléments comme l'a suggéré anapajari. Donc, je parcours mon tableau dans la fonction.
Marsh Posté le 06-03-2008 à 10:16:03
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.
Marsh Posté le 06-03-2008 à 10:19:10
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.
Marsh Posté le 06-03-2008 à 10:26:37
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:
|
Marsh Posté le 06-03-2008 à 10:34:16
Masklinn, il utilise getElementsByName ( http://developer.mozilla.org/en/do [...] entsByName ) et pas getElementsByTagName.
Je dis ça je dis rien
Marsh Posté le 06-03-2008 à 10:50:06
anapajari a écrit : Masklinn, il utilise getElementsByName ( http://developer.mozilla.org/en/do [...] entsByName ) et pas getElementsByTagName. |
Oshit, j'ai loosé sur le coup, j'utilise tellement pas cette fonction que je me souvenais même plus de son existence
Bon ben désolé titi04, j'ai merdé sur le coup
Marsh Posté le 06-03-2008 à 11:15:34
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 :
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...
Marsh Posté le 06-03-2008 à 12:07:39
badass> quand tu sauras lire un topic, tu pourra te permettre ce genre de post
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 :
|
par
Code :
|
Bon maintenant, reste que ta fonction est vraiment pas top
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.
Marsh Posté le 06-03-2008 à 12:11:36
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:
|
J'aurais même tendance à passer par getAttribute() juste au cas 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
Marsh Posté le 06-03-2008 à 12:21:39
anapajari a écrit : badass> quand tu sauras lire un topic, tu pourra te permettre ce genre de post |
Euh, qu'est ce que je t'ai fait ?
[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]
Marsh Posté le 06-03-2008 à 13:20:09
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 |
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 :
|
la mienne était également sans animosité
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 ? |
sorry, je croyais vraiment que c'était badass et pas babass
Marsh Posté le 06-03-2008 à 13:45:30
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';
}
}
}
Marsh Posté le 06-03-2008 à 14:36:06
anapajari a écrit : |
Lose v2 de ma part
C'est e.getAttribute("checked" ) qui renvoie null/"checked" dans tous les navigateurs, sauf MSIE qui renvoie true/false
Marsh Posté le 06-03-2008 à 21:55:30
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
Marsh Posté le 07-03-2008 à 09:23:00
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
Marsh Posté le 05-03-2008 à 10:16:47
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