Kleiner Bug in einer Addition von Checkboxen
Konrad Herzog
- javascript
0 wahsaga0 Konrad Herzog0 plan_B
Folgendes Script funktioniert wunderbar, wenn in dem Formular
2 oder mehr Checkboxen enthalten sind. Ist da aber nur 1 input
type=checkbox, wird onClick das Resultat nicht ausgegeben.
Kann mir jemand sagen, wo ich die Funktion abändern muss, um
auch bei nur einer Checkbox onClick das richtige Resultat zu
erhalten?
<form name="myForm" action="save.asp" method=post>
<input onClick="addition(this,24);" type="checkbox" name="ArtikelCheckListe" value="593286">
<input onClick="addition(this,46);" type="checkbox" name="ArtikelCheckListe" value="593287">
<input onClick="addition(this,23);" type="checkbox" name="ArtikelCheckListe" value="593288">
<input type=text name="result" readOnly>
</form>
<script type="text/javascript">
function addition(el,wert){
var summe = 0; // Anfangsbetrag
el.value2=wert;
var liste = el.form[el.name]; // Die Liste aller Checkboxen mit dem Namen
for(var i = 0; i < liste.length; i++)
summe += (liste[i].checked && liste[i].value2) ? liste[i].value2 : 0;
el.form.result.value = summe;
}
</script>
hi,
Folgendes Script funktioniert wunderbar, wenn in dem Formular
2 oder mehr Checkboxen enthalten sind. Ist da aber nur 1 input
type=checkbox, wird onClick das Resultat nicht ausgegeben.
Wenn nur ein Element des Namens vorhanden ist, dann erhältst du keine NodeList.
gruß,
wahsaga
Danke schon mal.
Folgendes Script funktioniert wunderbar, wenn in dem Formular
2 oder mehr Checkboxen enthalten sind. Ist da aber nur 1 input
type=checkbox, wird onClick das Resultat nicht ausgegeben.Wenn nur ein Element des Namens vorhanden ist, dann erhältst du
keine NodeList.
Sowas habe ich vermutet. In einer Sprache, die ich verstehe
(Sorry, aber bin wirklich Javaunfähig und werde es mit
grosser Wahrscheinlichkeit nach diesem Script auch nie
mehr gebrauchen) würde die Funktion dann so aussehen:
function addition(el,wert){
var summe = 0; // Anfangsbetrag
el.value2=wert;
var liste = el.form[el.name]; // Die Liste aller Checkboxen mit dem Namen
------------------------------------
If liste.length = False Then // also wenn NodeList vorhanden ist
If liste.element.checked = True Then
el.form.result.value = wert
Else
el.form.result.value = summe
End If
Else
for(var i = 0; i < liste.length; i++)
summe += (liste[i].checked && liste[i].value2) ? liste[i].value2 : 0;
el.form.result.value = summe;
End If
}
Lässt sich das in Javascript übersetzen?
Hallo,
Wenn nur ein Element des Namens vorhanden ist, dann erhältst du
keine NodeList.
...
Lässt sich das in Javascript übersetzen?
ich würde aus dem einen Element ein Array machen:
var liste = el.form[el.name]; // Die Liste aller Checkboxen mit dem Namen
if ( ! liste.length) liste = new Array(liste); // ggf ein Array mit 1 Element
damit sollte der Spezialfall abgehandelt sein.
Gruß plan_B
ich würde aus dem einen Element ein Array machen:
damit sollte der Spezialfall abgehandelt sein.
Das war die Lösung! Vielen Dank plan_B!