Page 1 sur 1
Récupérer valeur d'une checkbox
Publié : 05 janv. 2005, 14:47
par calimo
Avec un select on fait ça :
Code : Tout sélectionner
var cat = document.getElementById('cat').options[document.getElementById('cat').selectedIndex].value;
Et avec une input checkbox ? J'ai essayé
Code : Tout sélectionner
var LLOnly = document.getElementById('cat').input[document.getElementById('LL')].value;
mais j'ai une erreur :
Erreur : document.getElementById("cat").input has no properties
Fichier Source : file:///C:/Documents%20and%20Settings/Xavier/Bureau/classement-FF-proprio.js
Ligne : 6
Quelle est la bonne syntaxe ?
Publié : 05 janv. 2005, 14:54
par Bobe
t'as déjà vu une checkbox dans une liste déroulante ?

Et puis il n'existe pas de collection prédéfinie nommée 'input'.
Je suppose que c'est pour ta page d'extensions, donc il n'y a pas de formulaire. Dans ce cas, tu récupères ton input comme tu récupèrerais n'importe quel nœud.
Publié : 05 janv. 2005, 15:15
par calimo
Il me semble bien l'avoir mise en dehors de la liste déroulante. En tous cas elle apparaît bien séparément 8)
J'ai essayé
mais ça me retourne toujours "on" que je coche ou que je décoche la case..
Finalement avec
ça fonctionne
Est-ce que c'est bien juste ou c'est un pur coup de bol ?
Reste à mettre en place un cookie pour stocker tout ça, mais il n'y a rien d'urgent
Merci !
Publié : 05 janv. 2005, 15:34
par Bobe
calimo a écrit :
J'ai essayé
mais ça me retourne toujours "on" que je coche ou que je décoche la case..
Finalement avec
ça fonctionne
Est-ce que c'est bien juste ou c'est un pur coup de bol ?
À partir du moment où ton input a l'identifiant 'LL', c'est bon. Lui donner un identifiant était-il indispensable ? Tu peux peut être récupérer le nœud en te baladant dans l'arbre. Admettons que ton input suive immédiatement ton select dans la structure du document. Il te suffirait de faire var tonInput = tonSelect.nextSibling. Le but est d'éviter de coller des id un peu partout lorsqu'ils ne sont pas indispensables.
Publié : 05 janv. 2005, 15:42
par Benoit
Pourquoi ne pas utiliser getElementsByName
http://www.mozilla.org/docs/dom/domref/ ... ref49.html ?
(attention ça retourne un tableau et pas un seul élément

)
(le lien vers la spécification est faux par contre, c'est celui-ci le bon :
http://www.w3.org/TR/2003/REC-DOM-Level ... D-71555259
P.S. Je pense que tu fais la confusion classique entre attribut et propriété.
Pourquoi value ne marche pas :
http://www.w3.org/TR/2003/REC-DOM-Level ... D-49531485
Changing this attribute changes the contents of the form control, but does not change the value of the HTML value attribute of the element.
Publié : 05 janv. 2005, 16:53
par martin
Et pour répondre au niveau pratique :
var LLOnly = document.getElementById('LL').checked;
LLonly contient true ou false, c'est un booléen.
Publié : 05 janv. 2005, 17:09
par calimo
Bobe a écrit :À partir du moment où ton input a l'identifiant 'LL', c'est bon. Lui donner un identifiant était-il indispensable ?
Pour le lier au for du label. Il me semble qu'il n'y a pas trop d'autres solutions non ?
Parce que ce n'est pas bon de mettre des id ? Quel est le problème ?
Bobe a écrit :Tu peux peut être récupérer le nœud en te baladant dans l'arbre. Admettons que ton input suive immédiatement ton select dans la structure du document. Il te suffirait de faire var tonInput = tonSelect.nextSibling. Le but est d'éviter de coller des id un peu partout lorsqu'ils ne sont pas indispensables.
Ah oui ça pourrait en effet
Parce qu'il n'y a pas de name ?

Je peux en mettre un mais quel avantage par rapport au id ?
Je n'ai pas vu d'autres liens...

De quel lien parlais-tu ?
C'est fort probable en effet.

Et j'ai aussi trop voulu voir la similarité avec ce qu'on fait dans un select où on veut bien récupérer l'attribut value
Mais maintenant je cherche bien l'attribut checked, et ça tombe bien je fais justement un test booléen sur celui-ci 8)
Publié : 05 janv. 2005, 17:39
par Bobe
calimo a écrit :
Pour le lier au for du label. Il me semble qu'il n'y a pas trop d'autres solutions non ?
Ça marche très bien ça aussi.
Parce que ce n'est pas bon de mettre des id ? Quel est le problème ?
C'est juste une question de logique. On ne va pas mettre des id sur chaque élément présent dans la page. Il faut simplement en mettre là où c'est indispensable.
Publié : 05 janv. 2005, 20:04
par Benoit
calimo a écrit :Parce qu'il n'y a pas de name ?

Je peux en mettre un mais quel avantage par rapport au id ?
Strictement aucun si la checkbox n'est pas envoyée avec un formulaire, mais c'est ce que j'avais cru comprendre
Je n'ai pas vu d'autres liens...

De quel lien parlais-tu ?
Celui dans la référence DOM, il pointe vers getElementByTagName qui n'est pas la même méthode, et pas dans le même DOM (Core au lieu de HTML)
Publié : 05 janv. 2005, 21:44
par calimo
Très bien, merci à tous !

Publié : 21 août 2006, 08:32
par lpgc
bonjour,
j'ai lu cet article parceque j'avais sous Firefox le message d'erreur suivant
Erreur : document.getElementById("ckachat") has no properties
sur le code :
Après une recherche sur Google.... cette question est souvent posée : çà fonctionne sous IE et pas sous Firefox
Cherchez l'Erreur de mon code
Code : Tout sélectionner
stable = stable & "<input type='checkbox' name='ckAchat' id='ckAchat' onclick='setMy(this);'"
if wdvdAchete then
stable = stable & " checked"
end if
stable = stable & " value='ON'>"

Trouvé ....

Dans l' ID.... j'ai pas fait attention aux majuscules :
ckachat c'est pas ckAchat... IE fait pas la différence
J'espère que çà pourra aider... j'ai dû chercher trop longtemps
Cordialement
Christian
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)