Comment puis-je utiliser Javascript pour changer la valeur d'un caché d'entrée en fonction sur l'état d'une case à cocher?
Je suis en train de changer la valeur d'un champ caché, en fonction de la valeur d'une case à cocher. Je ne connais pas beaucoup de choses à propos de Javascript, mais c'est ce que j'ai jusqu'à présent.
<input type="hidden" value="" id="delterms" name="O_" />
<input type="checkbox" id="checkbox" onchange="terms()" />
<script type="text/javascript">
var checked = document.getElementById('checkbox').checked;
function terms() {
if (checked==false)
{
document.getElementById('delterms').value=''
}
else
{
document.getElementById('delterms').value='Accepted'
}
}
</script>
Je l'ai eu à travailler mais seulement sur le premier clic, est-il de toute façon à définir la valeur en fonction de la case d'état? Je soupçonne qu'il ya quelques beaucoup plus simple, et je suis sans aucun doute sur qui complique encore le problème.
OriginalL'auteur Dave | 2011-06-07
Vous devez vous connecter pour publier un commentaire.
Essayez d'ajouter une écouteur d'événement au lieu d'utiliser le code HTML "onchange" attribut, ce qui pourrait clarifier les choses pour vous et sera sans doute de rendre votre code plus facile à maintenir dans le long terme:
L'idée est que la fonction anonyme est exécuté à chaque fois que l'utilisateur clique sur la case à cocher, qui définit la valeur du champ caché soit "Accepté" ou la chaîne vide, selon si oui ou non la case est cochée.
Ce jsFiddle montre un exemple de travail.
J'ai mis à jour ma réponse à démontrer un moyen plus fiable de le faire, laissez-moi savoir si cela fait sens pour vous.
OriginalL'auteur maerics
Déplacer l'affectation de variable dans la fonction, donc:
OriginalL'auteur stuartd
Fixe dans un violon utiliser l'Événement du clic.
http://jsfiddle.net/hSMbf/1/
OriginalL'auteur josh.trow
Parce que les cases à cocher ne sont pas fournies dans un formulaire.submit() quand ils ne sont pas cochées j'utilise un champ caché qui est mise à jour lorsque la case est cliqué.
(J'ai omis les jsp-code qui ajoute le
checked
propriété de la case d'entrée si elle a déjà été vérifié lors du rendu de la page.)OriginalL'auteur Claes Mogren
Votre variable
checked
est définie qu'une fois, donc, il est toujours égal à la valeur initiale. Déplacer à l'intérieur de votre fonctionterms()
.OriginalL'auteur CodeZombie
obtenir la valeur cochée à l'intérieur de votre fonction
OriginalL'auteur niksvp