Checkbox

tschinkes

New member
Hallo, ich möchte gerne in einem Textfeld den Gesamtwert ausgeben der abhängig ist von zwei Checkboxen (check1 und check2).

Meine Funktion sieht wie folgt aus:

Code:
function preis()
{

if (document.bestellung.check1.checked==false) {
	var document.bestellung.check1.value = 0;
	} else {
	var document.bestellung.check2.value = 15;
	
if (document.bestellung.check2.checked==false) {
	var document.bestellung.check2.value = 0;
	} else {
	var document.bestellung.check2.value = 10;
	}
	
 var preis = 30 + parseInt(document.bestellung.check1.value) + parseInt(document.bestellung.check1.value);
 document.bestellung.preis.value = preis;
}

Meine Checkboxen sehen wie folgt aus:
HTML:
...
<input name="check1" type="checkbox" id="check2" onclick="preis()" value="15"  />
...
<input name="check2" type="checkbox" id="check2" onclick="preis()" value="10"  />
...

Leider funktioniert das gar nicht.
 
hi probier mal so...

Code:
function preis(){
	var preis = 0;

	if (document.bestellung.check1.checked==true) {
		preis += parseInt(document.bestellung.check1.value);					
	}	
	if (document.bestellung.check2.checked==true) {
		preis += parseInt(document.bestellung.check2.value);		
	}
	
	var endpreis = 30 + preis;
	document.bestellung.preis.value = endpreis;
}

anmerkung:
Code:
var document.bestellung.check2.value = 15;

..das müsste der fehler sein..


gruss

redreggae
 
Also danke erst mal für die schnelle Hilfe. Jetzt ist es schon mal so das der Anfangsbetrag von 30 angezeigt wird.
Sobald ich aber eine Checkbox aktiviere, bekomme ich ne Brwoserfehlermeldung, und am Betrag "30" ändert sich im Textfeld auch nichts.

Fehlermeldung des Browsers (jeweils in der Checkboxzeile)
Das Objekt unterstützt diese Eigenschaft oder Methode nicht
 
Zuletzt bearbeitet:
ich würde dir sowieso raten, alles mit document.getElementByID zu machen..denn document.all beherrscht nur der IE und Mozilla soviel ich weiss..

..und du darfst keine id zweimal vergeben:

Code:
<input name="check1" type="checkbox" id="check1" onclick="preis()" value="15"  />
...
<input name="check2" type="checkbox" id="check2" onclick="preis()" value="10"  />
...

dann:

Code:
function preis(){
	var preis = 0;

	if (document.getElementById('check1').checked==true) {
		preis += parseInt(document.getElementById('check1').value);					
	}	
	if (document.getElementById('check2').checked==true) {
		preis += parseInt(document.getElementById('check2').value);					
	}	
	
	var endpreis = 30 + preis;
	document.getElementById('preis').value = endpreis;
}

..natürlich dem ausgabetextfeld noch die id: preis geben..

gruss

redreggae
 
Ok, erst mal danke für den Tip mit dem ansprechen per ID, aber leider noch immer der gleiche Fehler, es tut sich nix.
 
dann guck mal bitte im mozilla in der javascriptkonsole und poste mal die genaue fehlermeldung..

oder setz das javascript mal in den header oder unter das formular...es sieht mir sehr danach aus, das die funktion garnicht angesprochen wird..sonst mach mal einen alert in die funktion und guck, ob wenigstens etwas passiert..

gruss

redreggae
 
Ahhhhhhhh, hab den Fehler gefunden, hatte die Textbox auf readonly gesetzt.
Aber mal eine andere frage, kann ich auch einen Text ausgeben ohne Textfeld? Das wäre angenehmer, weil sonst bei der Preisausgabe der Wert evt, gelöscht werden könnte und der "Kunde" den Preis dann nicht mehr sieht, und es sieht besser aus ;)
 
ja sicher dat..

mach dir ein z.b. ein div mit id:
Code:
<div id="ausgabe"></div>

dann einfach innerHTML:

Code:
var endpreis = 30 + preis;
document.getElementById('ausgabe').innerHTML = endpreis;

gruss

redreggae
 
hey cool, was man mit so ein bisschen javascript bewirken kann..
bist du m oder w?? ne war ein witz;)

freut mich, wenn ich dir helfen konnte

gruss redreggae
 
ich würde dir sowieso raten, alles mit document.getElementByID zu machen..denn document.all beherrscht nur der IE und Mozilla soviel ich weiss...
Ich würde eher annehmen, dass er ein Formular mit Namen "bestellung" hat und darüber auf die Checkboxen zugreift (bezieht sich jetzt auf den Code im ersten Post)
 
Zuletzt bearbeitet von einem Moderator:
yo du hast recht...hab ich auch nochmal nachgelesen..formulare kann man auch in der form wie im 1. post ansprechen und das hat auch nix mit document.all zu tun...

naja..aber mit document.getElementById ist man immer auf der sicheren seite..

gruss

redreggae
 
Zurück
Oben