Preisrechnung mit Auswahlmenü
paul93
- javascript
Hallo,
ich möchte ein Auswahlmenü(1) mit den Zahlen und Werten 1;2;3 und ein Auswahlmenü(2) mit den Zahlen und Werten 2;4;6 erstellen.
Auswahlmenü(1) wird mit Auswahlmenü(2) multipliziert.
Das Ergebnis wird in ein Textfeld geschrieben.
Ich schaffe es aber nur mit Radioboxen:
<html>
<head>
<title>Rechnung</title>
<script type="text/javascript">
function berechne() {
var g = 0;
if (document.f.J[0].checked) z = g + 1;
if (document.f.J[1].checked) z = g + 2;
if (document.f.J[2].checked) z = g + 3;
if (document.f.G[0].checked) y = z * 2;
if (document.f.G[1].checked) y = z * 4;
if (document.f.G[2].checked) y = z * 6;
document.f.p.value = y;
}
</script>
</head>
<body >
<form name="f">
<table class=form >
<input type="radio" name="J" value="1" onChange="berechne()" checked>1 <br />
<input type="radio" name="J" value="2" onChange="berechne()" >2<br />
<input type="radio" name="J" value="3" onChange="berechne()">3<br />
<br />
<input type="radio" name="G" value="2" onChange="berechne()" checked>2 <br />
<input type="radio" name="G" value="4" onChange="berechne()" >4<br />
<input type="radio" name="G" value="6" onChange="berechne()">6<br />
<br />
<input type="text" size="2" name="p" readonly>
</table>
</form>
</body>
</html>
Wie schaffe ich dass nun mit auswahlmen#s?
Ich dachte es funktioniert ungefähr so:
<html>
<head>
<title>Rechnung</title>
<script type="text/javascript">
function berechne() {
var g = 0;
if (document.f.eins[0].checked) z = g + 1;
if (document.f.eins[1].checked) z = g + 2;
if (document.f.eins[2].checked) z = g + 3;
if (document.f.zwei[0].checked) y = z * 2;
if (document.f.zwei[1].checked) y = z * 4;
if (document.f.zwei[2].checked) y = z * 6;
document.f.p.value = y;
}
</script>
</head>
<body >
<form name="f">
<table class=form >
<select name="eins">
<option value="1" onChange="berechne()" checked>1</option>
<option value="2" onChange="berechne()">2</option>
<option value="3" onChange="berechne()">3</option>
</select>
<br />
<select name="zwei">
<option value="2" onChange="berechne()" checked>2</option>
<option value="4" onChange="berechne()">4</option>
<option value="6" onChange="berechne()">6</option>
</select>
<br />
<input type="text" size="2" name="p" readonly>
</table>
</form>
</body>
</html>
So passiert dann aber garnichts...
Hab schon viel im Internet gesucht aber keine Lösung gefunden.
Ich hoffe ihr könnt/wollt mir helfen.
Gruß
Paul
Mahlzeit paul93,
if (document.f.J[0].checked) z = g + 1;
Sicher, dass *das* funktioniert? Ich empfehle - wie eigentlich *IMMER* - <http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines@title=Schema 4> ...
Ich dachte es funktioniert ungefähr so:
Ungefähr.
if (document.f.eins[0].checked) z = g + 1;
Ich empfehle (immer noch) <http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines@title=Schema 4>.
<table class=form >
<select name="eins">
Ein <table> darf nur <caption>, <thead>, <tbody>, <tfoot> sowie natürlich <tr> enthalten ... jedoch kein <select>. Validiere Deinen Code!
<option value="1" onChange="berechne()" checked>1</option>
Wie kommst Du auf die die Idee, ein <option>-Element könnte sich ändern? Möchtest Du den Eventhandler nicht lieber im <select> notieren? Achja - <http://de.selfhtml.org/html/referenz/attribute.htm#option@title=ein Attribut namens "checked" kennt ein <option> auch nicht> ...
So passiert dann aber garnichts...
Ganz sicher? Was sagt die Fehlerkonsole eines vernünftigen Browsers (Nein - nicht der IE!)?
MfG,
EKKi
Hi,
if (document.f.J[0].checked) z = g + 1;
Sicher, dass *das* funktioniert? Ich empfehle - wie eigentlich *IMMER* - <http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines@title=Schema 4> ...
Wenn du den Teil in der IF-Bedingung meinst - wieso sollte der nicht "funktionieren"?
Das ist doch ganz normales Vorgehen nach Schema #2.
MfG ChrisB
Hallo
Danke für eure Antworten!
Hab es jezt geschafft:
<html>
<head>
<title>Rechner</title>
<script language="JavaScript" type="text/javascript">
<!--
function wechsel() {
var wahlgame = document.liste1.game.selectedIndex;
var preiseins = document.liste1.game.options[wahlgame].value;
var x = preiseins;
var wahlslots = document.liste1.slots.selectedIndex;
var preiszwei = document.liste1.slots.options[wahlslots].value;
var preis = x * preiszwei;
document.liste1.preiss.value = preis;
}
//-->
</script>
</head>
<body bgcolor="white">
<form name="liste1">
<select size="1" name="game" onChange="wechsel()">
<option value="1" selected="selected">1</option>
<option value="2">2</option >
<option value="3">3</option >
<option value="4">4</option >
</select>
<select size="1" name="slots" onChange="wechsel()">
<option value="2" selected="selected">2</option>
<option value="4">4</option >
<option value="6">6</option >
<option value="8">8</option >
</select>
<input type="text" size="2" name="preiss" readonly>
</form>
</body>
</html>
MfG
Paul