Probleme document.getElementById
Résolu
pee3x
Messages postés
72
Date d'inscription
Statut
Membre
Dernière intervention
-
pee3x Messages postés 72 Date d'inscription Statut Membre Dernière intervention -
pee3x Messages postés 72 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je souhaite faire un script qui change la valeur d'un champs de type hidden sur mon site, j'ai donc fait une fonction qui contient document.getElementById('champs').value="blabla"; et qui est activée par un onclick
mais quand je clique sur le lanceur, la fonction s'execute mais la console js me retourne l'erreur suivante:
document.getElementById('champs') is null
alors que le champs avec "champs" comme id existe bien et que le document.getElementById est dans une fonction
pouvez vous m'aider?
merci d'avance
je souhaite faire un script qui change la valeur d'un champs de type hidden sur mon site, j'ai donc fait une fonction qui contient document.getElementById('champs').value="blabla"; et qui est activée par un onclick
mais quand je clique sur le lanceur, la fonction s'execute mais la console js me retourne l'erreur suivante:
document.getElementById('champs') is null
alors que le champs avec "champs" comme id existe bien et que le document.getElementById est dans une fonction
pouvez vous m'aider?
merci d'avance
7 réponses
Modifier une valeur d'un formulaire avec du javascript n'est pas une bonne idée : si l'internaute désactive le javascript, la valeur sera erronée. Il vaudrait mieux remplacer le bouton avec "onclick" par des boutons radio : l'attribut "value" qui sert dans le traitement des données n'est pas visible par l'internaute donc pas de souci (on peut le voir en affichant le code source mais on voit aussi les champs cachés dans le code source donc niveau sécurité ça ne change rien).
Voilà à quoi doivent ressembler les boutons radio :
Si tu tiens vraiment à conserver le javascript, sache que le document.getElementById('champs') doit être placé dans un bloc de script après l'élément d'id 'champs' ou bien si la fonction est écrite avant on est obligé de fournir l'id à cette fonction après l'élément, sinon il ne connaît pas l'id (non déclaré).
Voilà à quoi doivent ressembler les boutons radio :
<input type="radio" name="blabla" value="blabla1" /> <input type="radio" name="blabla" value="blabla2" />
Si tu tiens vraiment à conserver le javascript, sache que le document.getElementById('champs') doit être placé dans un bloc de script après l'élément d'id 'champs' ou bien si la fonction est écrite avant on est obligé de fournir l'id à cette fonction après l'élément, sinon il ne connaît pas l'id (non déclaré).
merci de ta reponse
oui je tiens a garder javascript parce que ce n'est pas un formulaire c'est une petite fonction comme sur facebook de "j'aime" et si il n'y a pas js il ne peut pas s'en servir et est obligé de l'activer :)
j'ai essayé de mettre ma fonction après mais ca n'a pas marché :S
oui je tiens a garder javascript parce que ce n'est pas un formulaire c'est une petite fonction comme sur facebook de "j'aime" et si il n'y a pas js il ne peut pas s'en servir et est obligé de l'activer :)
j'ai essayé de mettre ma fonction après mais ca n'a pas marché :S
oui voila:
et le js:
avec la variable id qui est déclarée comme paramaetre de la fonction avec le onclick
<input type="hidden" id="champs<?php echo $actu['id'];?>" value="<?php echo $nombre_aime;?>" />
et le js:
document.getElementById('champs'+id).value="1";
avec la variable id qui est déclarée comme paramaetre de la fonction avec le onclick
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Alors voilà ce que je te conseille :
Dans ton javascript, rajoute un alert('champs'+id).
Comme ça tu sais exactement ce qui est utilisé par ton script.
Par ailleurs, dans ton navigateur, fais « Afficher la source » pour voir exactement comment ton champs s'appelle.
Et vérifie que les deux sont bien identiques :)
Xavier
Alors voilà ce que je te conseille :
Dans ton javascript, rajoute un alert('champs'+id).
Comme ça tu sais exactement ce qui est utilisé par ton script.
Par ailleurs, dans ton navigateur, fais « Afficher la source » pour voir exactement comment ton champs s'appelle.
Et vérifie que les deux sont bien identiques :)
Xavier