Javascript Frage

Canon

Well-known member
20 April 2006
4.651
422
Hi
Kann mir jemand sagen, warum folgendes nicht funktioniert?

<html>
<head>

<body>
<script language="javascript">

function rechnen()
{
var a;
var b;
var c;

a=document.form1.aa.value;
b=document.form1.bb.value;

if (document.form1.auswahl.value = "pl")
{
c=Number(a) + Number(b);
}

else if (document.form1.auswahl.value = "mi")
{
c=Number(a) - Number(b);
}

else if (document.form1.auswahl.value = "ma")
{
c=a * b;
}

else if (document.form1.auswahl.value = "ge")
{
c=a / b;
}

alert(c);
}


</script>
</head>
<form name="form1" method="post">
<input type="Text" name="aa" value="0">
<input type="Text" name="bb" value="0">
<br>
<input type="Radio" name="auswahl" value="pl">+<br>
<input type="Radio" name="auswahl" value="mi">-<br>
<input type="Radio" name="auswahl" value="ma">*<br>
<input type="Radio" name="auswahl" value="ge">/<br>


<input type="button" value="rechne" onclick="rechnen()">

</form>

</body>

</html>
 
Zuletzt bearbeitet:
was funktioniert denn nicht? wird es nicht angezeigt? wird es falsch angezeigt? wird es richtig angezeigt, aber es rechnet nichts?

wäre wirklich toll, eine genauere Problembeschreibung zu erhalten :roll:
 
was funktioniert denn nicht? wird es nicht angezeigt? wird es falsch angezeigt? wird es richtig angezeigt, aber es rechnet nichts?

wäre wirklich toll, eine genauere Problembeschreibung zu erhalten :roll:

Tut mir Leid, ich dachte ihr geb das eh bei euch ein und seht das dann.

Also der bleibt irgendwie immer bei der ersten Schleife hängen und rechnet das +

Wenn ich bissel rumprobiere, dann gibt er garnichts aus.

Gruß und Thx
 
Schleife? Ich sehe da keine Schleife, nur Abfragen.

Dein Fehler ist aber wohl, dass Du Zuweisungen mittels = machst, während Abfragen mit == gemacht werden.

Das ist übrigens Javascript, was nun wirklich erschreckend wenig mit Java zu tun hat.
 
Ja, ich habe da noch nicht so den durchblick, fange gerade erst damit an.

Das mit dem == habe ich probiert, funzt nicht:(
 
Firebug installieren, Firefox neustarten und nochmal das Ding anschauen, das wird dir dann schon einen Fehler sagen.

Achso, muss noch vorher aktiviert das Firebug
 
Hm der zeigt mir i-wie nur die Fehler an die ich selber schon kannte;)

Das Problem ist im Grunde nur das auslesen der Radio-Buttons.

Der Rest klappt ja
 
Du bekommst ein Array zurück wenn es mehrere Elemente mit dem selben Namen gibt. Mit document.form1.auswahl[N] kannst du auf die einzelnen Elemente drauf zugreifen. Also kannst du mittels document.form1.auswahl[0].value,document.form1.auswahl[1].value,document.form1.auswahl[2].value usw. die values ermitteln, würde aber kein Sinn machen da alle Elemente eine Value haben. Mit checked kommst du aber ans ziel...
PHP:
if(document.form1.auswahl[0].checked) { //plus rechnen }
if(document.form1.auswahl[1].checked) { //minus rechnen }
...
 
Danke für deine Hilfe

so ganz rall ich das aber immer noch nicht, könntest du die Stellen einfügen und den Code reinstellen?

Thx a lot
 
PHP:
<html>
<head>

<body>
<script language="javascript">

	function rechnen() {
		var a,b,c;
		
		a = parseFloat(document.form1.aa.value);
		b = parseFloat(document.form1.bb.value);
		
		if(document.form1.auswahl[0].checked)
			c=a + b;
		elseif(document.form1.auswahl[1].checked)
			c=a - b;
		elseif(document.form1.auswahl[2].checked)
			c=a * b;
		elseif(document.form1.auswahl[3].checked")
			c=a / b;
		
		alert(c);
	}
	

</script>
</head>
<form name="form1" method="post">
<input type="Text" name="aa" value="0">
<input type="Text" name="bb" value="0">
<br>
<input type="Radio" name="auswahl" value="pl">+<br>
<input type="Radio" name="auswahl" value="mi">-<br>
<input type="Radio" name="auswahl" value="ma">*<br>
<input type="Radio" name="auswahl" value="ge">/<br>


<input type="button" value="rechne" onclick="rechnen()">

</form>

</body>

</html>
 
Danke, aber bei mir geht die Ausgabe nicht?

Hab den Fehler mit Head auch weggemacht
 
Ach ich habs gefunden.

Else if auseinander und bei dem 3. else if war hinter dem checked noch ein "

Jetzt gehts

VIELE DANK!!!