• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Javascript value addieren

redpet

Neues Mitglied
Hallo

Leider verstehe ich nicht all zuviel von Javascript, muss jedoch einen Preisrechner zusammenbauen. Das ganze muss auch nicht per Mail oder sonstiges übertragen werden sondern soll dem Betrachter nur die Preise zusammenrechnen. Das Script funktioniert einwandfrei wenn ich nur Checkboxen verwende.

Nun meine Frage, was muss ich im head ändern damit das Script den value Wert der Checkboxen und der Radio Button zusammenzählt?

Danke schon mal für die Antwort...

<script type="text/javascript">
function addValues(){
var sum = 0;
for(var i = 0; i < document.forms[0].length; ++i){
if(document.forms[0].elements.type == "checkbox" && document.forms[0].elements.checked){
sum += (document.forms[0].elements.value * 1);
}
}
document.forms[0].ausgabe.value = sum;
}
</script>
</head>
<body>
<form name="test">
<input type="checkbox" value="1" onClick="addValues();">1<br />
<input type="checkbox" value="2" onClick="addValues();">2<br />
<input type="checkbox" value="3" onClick="addValues();">3<br />
<input type="checkbox" value="4" onClick="addValues();">4<br />
<input type="checkbox" value="5" onClick="addValues();">5<br />
<input type="checkbox" value="6" onClick="addValues();">6<br />

<input name="dvd1" type="radio" value="7" onClick="addValues();">7<br />
<input name="dvd1" type="radio" value="8" onClick="addValues();">8<br />
<input name="dvd1" type="radio" value="9" onClick="addValues();">9<br />

<input type="text" name="ausgabe">
</font></p>
</form>
 
Code:
function add (from, to) {
    var el = document.getElementById(to);
    if (from.checked) {
        el.value = parseInt(el.value, 10) + parseInt(el.value, 10);
    } else {
        el.value = parseInt(el.value, 10) - parseInt(el.value, 10);
    }
}

<input type="checkbox" value="1" onclick="add(this, 'sum')">
<input type="text" value="0" id="sum">
 
Hallo Slibbo

Danke Dir für die rasche Antwort. Leider Kriege ich es noch immer nicht hin... Wie gesagt habe ich eigentlich keine Ahnung von Javascript. Habe mir das obige Script gestern Nacht aus mehreren Foren zusammengeschnipselt...

Zeile 2 bis 9 sollte wohl meine ersten 10 Zeilen ersetzen?! Aber was mache ich mit den Zeilen 11 und 12..?!

Danke und Gruss
 
HTML:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>test</title>
      
        <script>
            function add (from, to) {
                var el = document.getElementById(to);
                if (from.checked) {
                    el.value = parseInt(el.value, 10) + parseInt(from.value, 10);
                } else {
                    el.value = parseInt(el.value, 10) - parseInt(from.value, 10);
                }
            }
        </script>
    </head>
    <body>
        <input type="checkbox" value="1" onclick="add(this, 'sum')">
        <input type="checkbox" value="2" onclick="add(this, 'sum')">
        <input type="checkbox" value="3" onclick="add(this, 'sum')">
        <input type="text" value="0" id="sum">
    </body>
</html>

Ist doch ganz einfach. Den rest solltest du leicht alleine rausbekommen.
 
Zuletzt bearbeitet von einem Moderator:
Danke noch einmal... Doch leider kriege ich es nicht hin... Nun funktioniert nix mehr.. weder die Checkboxen noch die Radio Button werden zusammengerechnet... Alles was ich möchte ist eine Vorlage mit Checkboxen und Radio Buttons welche ich beliebig erweitern und beschriften kann... Den Rest kriege ich schon hin. Ich kriege es auch hin das entweder die Checkboxen oder Die Radio Buttons addiert werden.. doch leider nie beide. Hier noch einmal der Code. Wenn Du den zum laufen bringen kannst währe ich dir sehr dankbar und werde den Rest schon noch irgendwie hinkriegen.

Gruss

<html>
<head>
<meta charset="utf-8">
<title>test</title>

<script>
function add (from, to) {
var el = document.getElementById(to);
if (from.checked) {
el.value = parseInt(el.value, 10) + parseInt(el.value, 10);
} else {
el.value = parseInt(el.value, 10) - parseInt(el.value, 10);
}
}
</script>
</head>
<body>
<form name="test">
<input type="checkbox" value="1" onclick="add(this, 'sum')">1<br />
<input type="checkbox" value="1" onclick="add(this, 'sum')">2<br />
<input type="checkbox" value="1" onclick="add(this, 'sum')">3<br />

<input name="dvd1" type="radio" value="7" onclick="add(this, 'sum')">7<br />
<input name="dvd1" type="radio" value="8" onclick="add(this, 'sum')">8<br />
<input name="dvd1" type="radio" value="9" onclick="add(this, 'sum')">9<br />

<input type="text" name="ausgabe">
</form>
</body>
</html>
 
in meinem code habe ich in der funktion "add" den string 'sum' stehen. wo findest du den noch wieder in meinem code?
 
Ich habe einen Fehler in meinem Code gemacht. Er hat die ganze Zeit die 0 von sich selbst subtrahier oder addiert.
Kopiere einfach den code den ich etwas höher geschrieben habe in eine datei und nenne die datei "test.html" dann öffne sie und du siehst, dass es funktionieren wird.
 
Ja Danke...

Nun funktioniert zwar die addierung. Doch wenn ich nun von einem Radio Button in den nächsten klicke addiert er in der summe zuerst den ersten Wert, dann den zweiten... usw... Ich möchte natürlich dass nur der Ausgewählte Wert addiert wird....

Uii.... ist wohl doch komplizierter als ich gedacht habe....
 
Das währe übrigens noch das Script...


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>

<script>
function add (from, to) {
var el = document.getElementById(to);
if (from.checked) {
el.value = parseInt(el.value, 10) + parseInt(from.value, 10);
} else {
el.value = parseInt(el.value, 10) - parseInt(from.value, 10);
}
}
</script>
</head>
<body>
<input type="checkbox" value="1" onclick="add(this, 'sum')">
<input type="checkbox" value="2" onclick="add(this, 'sum')">
<input type="checkbox" value="3" onclick="add(this, 'sum')">

<input name="dvd1" type="radio" value="7" onclick="add(this, 'sum')">7<br />
<input name="dvd1" type="radio" value="8" onclick="add(this, 'sum')">8<br />
<input name="dvd1" type="radio" value="9" onclick="add(this, 'sum')">9<br />

<input type="text" value="0" id="sum">
</body>
</html>
 
So habe es nun hingekriegt.... Bin nun wieder von meinem Ur-Script ausgegangen und habe einfach die Spezifikation type == "checkbox" rausgenommen. Ist ja eigentlich logisch das der bei type == "checkbox" nur die checkboxen zusammenzählt....

Danke dir Slibbo für deine Mühe und Geduld...

Hier noch der Script falls mal jemand anderes auf der suche ist.

<script type="text/javascript">
function addValues(){
var sum = 0;
for(var i = 0; i < document.forms[0].length; ++i){

if(document.forms[0].elements && document.forms[0].elements.checked){
sum += (document.forms[0].elements.value * 1);
}
}
document.forms[0].ausgabe.value = sum;
}
</script>
</head>
<body>
<form name="test">

<input type="checkbox" value="1" onClick="addValues();">1<br />
<input type="checkbox" value="2" onClick="addValues();">2<br />
<input type="checkbox" value="3" onClick="addValues();">3<br />
<input type="checkbox" value="4" onClick="addValues();">4<br />
<input type="checkbox" value="5" onClick="addValues();">5<br />
<input type="checkbox" value="6" onClick="addValues();">6<br />

<input name="dvd1" type="radio" value="7" onClick="addValues();">7<br />
<input name="dvd1" type="radio" value="8" onClick="addValues();">8<br />
<input name="dvd1" type="radio" value="9" onClick="addValues();">9<br />

<input type="text" name="ausgabe">

</form>
 
Zurück
Oben