Function pour afficher plusieurs checkbox ayant le même nom
Résolu
danielos77
Messages postés
109
Date d'inscription
Statut
Membre
Dernière intervention
-
danielos77 Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
danielos77 Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
J'ai ce petit script dont le but devrait être de récupérer les valeurs des checkbox et de les afficher (val1 ; val2 ; ..) mais il ne doit pas fonctionner car la popup ne s'affiche pas... donc la variable freqused ne doit rien contenir non plus. Cette fonction devrait être appelée à chaque fois qu'un choix est fait dans une checkbox afin de modifier le contenu de la variable.
Le code des checkbox est le suivant :
Si une bonne âme pouvait me venir en aide... Merci d'avance
Daniel
J'ai ce petit script dont le but devrait être de récupérer les valeurs des checkbox et de les afficher (val1 ; val2 ; ..) mais il ne doit pas fonctionner car la popup ne s'affiche pas... donc la variable freqused ne doit rien contenir non plus. Cette fonction devrait être appelée à chaque fois qu'un choix est fait dans une checkbox afin de modifier le contenu de la variable.
<script type="text/javascript">
function checkbox() {
var freqused = document.getElementsByName("FreqUsed[]");
var i;
for (i = 0; i < x.length; i++) {
freqused[i] == (document.forms["0"].elements["FreqUsed[]].value"+" ; ");
}
w=open("",'popup','width=250,height=150,toolbar=no,scrollbars=auto,resizable=yes');
w.document.write(freqused);
}
</script>
Le code des checkbox est le suivant :
<p> <LABEL for="FreqUsed">27 Mhz :</LABEL> <input type="checkbox" name="FreqUsed[]" value="27" onclick="function checkbox()" /> <LABEL for="Freq27">Fréquence utilisée :</LABEL> <input type="text" name="Freq27" id="Freq27" size="10" style="text-align:right" pattern="[0-9,]+" placeholder="00,0000" /> MHz <br> <LABEL for="FreqUsed">41 Mhz :</LABEL> <input type="checkbox" name="FreqUsed[]" value="41" onclick="function checkbox()" /> <LABEL for="Freq41">Fréquence utilisée :</LABEL> <input type="text" name="Freq41" id="Freq41" size="10" style="text-align:right" pattern="[0-9,]+" placeholder="00,0000" /> MHz <br> <LABEL for="FreqUsed">72 Mhz :</LABEL> <input type="checkbox" name="FreqUsed[]" value="72" onclick="function checkbox()" /> <LABEL for="Freq72">Fréquence utilisée :</LABEL> <input type="text" name="Freq72" id="Freq72" size="10" style="text-align:right" pattern="[0-9,]+" placeholder="00,0000" /> MHz <br> <LABEL for="FreqUsed">2,4 Ghz :</LABEL> <input type="checkbox" name="FreqUsed[]" value="2400" onclick="function checkbox()" /> <br> </p>
Si une bonne âme pouvait me venir en aide... Merci d'avance
Daniel
Configuration: Windows / Firefox 76.0
4 réponses
-
Bonjour,
ça devrait ressembler à un truc du genrefunction checkbox() { var x = document.getElementsByName("FreqUsed[]"); var freqused; var i; for (i = 0; i < x.length; i++) { freqused += x[i].value +" ; "); } w=open("",'popup','width=250,height=150,toolbar=no,scrollbars=auto,resizable=yes'); w.document.write(freqused); }
-
Voici le code corrigé
<html> <head> <title> test </title> <meta charset='utf-8'> </head> <body> <p> <LABEL for="FreqUsed">27 Mhz :</LABEL> <input type="checkbox" name="FreqUsed[]" value="27" onclick="checkbox()" /> <LABEL for="Freq27">Fréquence utilisée :</LABEL> <input type="text" name="Freq27" id="Freq27" size="10" style="text-align:right" pattern="[0-9,]+" placeholder="00,0000" /> MHz <br> <LABEL for="FreqUsed">41 Mhz :</LABEL> <input type="checkbox" name="FreqUsed[]" value="41" onclick="checkbox()" /> <LABEL for="Freq41">Fréquence utilisée :</LABEL> <input type="text" name="Freq41" id="Freq41" size="10" style="text-align:right" pattern="[0-9,]+" placeholder="00,0000" /> MHz <br> <LABEL for="FreqUsed">72 Mhz :</LABEL> <input type="checkbox" name="FreqUsed[]" value="72" onclick="checkbox()" /> <LABEL for="Freq72">Fréquence utilisée :</LABEL> <input type="text" name="Freq72" id="Freq72" size="10" style="text-align:right" pattern="[0-9,]+" placeholder="00,0000" /> MHz <br> <LABEL for="FreqUsed">2,4 Ghz :</LABEL> <input type="checkbox" name="FreqUsed[]" value="2400" onclick="checkbox()" /> <br> </p> <script type="text/javascript"> function checkbox() { var x = document.getElementsByName("FreqUsed[]"); var freqused; var i; for (i = 0; i < x.length; i++) { // si la case est cochée if(x[i].checked == true ){ var chkvalue = x[i].value; //si la checkbox a bien une value if(typeof(chkvalue)!="undefined" && chkvalue!=null ){ console.log('Checkbox value ',chkvalue ); var inpVal = ""; var inp = document.getElementById('Freq' + chkvalue ); // input correspondant à la checkbox // Si l'input existe if(typeof(inp) !='undefined' && inp !=null){ inpVal = inp.value; } freqused += chkvalue +": " + inpVal + "; "; // on concatène l'id de la checkbox et la value de l'input correspondant } } } w=open("",'popup','width=250,height=150,toolbar=no,scrollbars=auto,resizable=yes'); w.document.write(freqused); } </script> </body> </html>
-
Bonjour Jordane45,
[tu es sur tous les fronts ;-)]
Bon, sinon, soit je m'y prend comme une branque (je que je pense) soit il y a un pb dans le script car lorsque je clique sur une checkbox, il ne se passe rien. Pas d'affichage de la popup. snif.
Je dois bien mettre le code dans le head ?
Daniel -
Époustouflant d'efficacité.
Merci 1000 fois.