checked Checkboxes gezählt
christs
- javascript
Hallo zusammen,
ich versuche mal ein code (siehe unten) zu implementieren. Beim anklicken sollte die Variable sich um eins erhöhen. Am Ende sollte die Variable "count" ausgegeben werden. Aber es funktioniert nicht. Können Sie mir helfen?
Danke
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<html><head><title>Test</title>
<script type="text/javascript">
function Weiter () {
var zutat = ["salami","pilze", "sardellen", "Tomaten"];
var count=0;
var i,j,h;
var message="Hello";
for (i=0; i<zutat.length; i++){
if(document.Testform.Art[i].checked == true){
count = count + 1;
}
}
document.getElementById("countValue").value=count;
}
</script>
</head>
<body>
<form name="Testform" action="">
<p id="ausgabefeld"></p>
<input type="checkbox" name="zutat[]" value="salami"> Salami<br>
<input type="checkbox" name="zutat[]" value="pilze"> Pilze<br>
<input type="checkbox" name="zutat[]" value="sardellen"> Sardellen<br>
<input type="checkbox" name="Zutat[]" value="Tomaten"> Tomaten<br>
<input type="text" name="countValues" id="countValue" size="10"/>count<br>
<input type="button" value="Starten" onclick="Weiter()">
</form>
</body>
</html>
Mahlzeit christs,
var zutat = ["salami","pilze", "sardellen", "Tomaten"];
Hier definierst Du ein Array.
for (i=0; i<zutat.length; i++){
Hier iterierst Du durch dieses Array und willst offenbar für jedes Array-Element etwas tun.
if(document.Testform.Art[i].checked == true){ count = count + 1; }
Anscheinend doch nicht. Zu diesem Stückchen Code hätte ich dann aber noch einige Anmerkungen:
generell ist ein Vergleich, ob etwas, das wahr oder falsch sein kann, wahr ist, sinnfrei
(nicht nur) in diesem Fall ist ein Zugriff auf Formularelemente nach <http://de.selfhtml.org/javascript/objekte/elements.htm@title=Schema 2> keine gute Idee, da/wenn im Namen der Elemente Sonderzeichen enthalten sind
in Deinem Formular existieren allerdings gar keine Elemente mit dem Namen "Art[]"
das Erhöhen einer Zählervariable um 1 geht auch kürzer
Kurzum:
if (document.forms['Testform'].elements[i].checked)
count++;
MfG,
EKKi
Hallo Ekki,
ich habe den Code korrigiert (siehe unten). Aber keine Ausgabe! Danke.
<script type="text/javascript">
function Weiter () {
var zutat = ["salami","pilze", "sardellen", "Tomaten"];
var count=0;
var i,j,h;
for (i=0; i<zutat.length; i++){
if (document.forms['Testform'].elements[i].checked)
{
count++;
}
}
document.getElementById("countValue").value=count;
}
</script>
</head>
<body>
<form name="Testform" action="">
<input type="checkbox" name="zutat" value="salami"> Salami<br>
<input type="checkbox" name="zutat" value="pilze"> Pilze<br>
<input type="checkbox" name="zutat" value="sardellen"> Sardellen<br>
<input type="checkbox" name="Zutat" value="Tomaten"> Tomaten<br>
<input type="text" name="countValues" id="countValue" size="10"/>count <br>
<input type="button" value="Starten" onclick="Weiter()">
</form>
</body>
</html>
[latex]Mae govannen![/latex]
ich habe den Code korrigiert (siehe unten). Aber keine Ausgabe! Danke.
Ich habe den Code lokal bei mir getestet. Funktioniert einwandfrei.
Irgendwelche Meldungen in der Fehler-Konsole?
Cü,
Kai
Hi,
Ich habe den Code lokal bei mir getestet. Funktioniert einwandfrei.
was sich ändert, wenn die Checkboxen plötzlich nicht mehr die ersten Formularelemente in dem Formular sind.
Cheatah
Hi,
ich habe den Code korrigiert (siehe unten). Aber keine Ausgabe!
Dann machst du noch irgendetwas anderes falsch - wenn ich den gezeigten Code per Copy&Paste übernehme (und im ein <html><head> ergänze), dann bekomme ich die Anzahl der jeweils angekreutzen Checkboxen im Textfeld angezeigt, wenn ich auf „Starten“ klicke. (Getestet in FF 3.6.8)
MfG ChrisB
Hi,
if(document.Testform.Art[i].checked == true){
Du hast im <form name="Testform"> nicht ein einziges Formularelement mit name="Art". Der Name ist, soweit ich es sehen kann, entweder "zutat[]" oder "Zutat[]". Iteriere also über diese Elemente.
Cheatah
Hi,
ich versuche mal ein code (siehe unten) zu implementieren. Beim anklicken sollte die Variable sich um eins erhöhen. Am Ende sollte die Variable "count" ausgegeben werden. Aber es funktioniert nicht.
Lies bitte zunächst die Tipps für Fragende noch mal; und liefere dann eine Problembeschreibung, die nicht analog zum nichtssagenden „funzt nich“ ist.
MfG ChrisB
Es funktioniert. Danke.