wert aktualisieren
Rudi
- javascript
0 Andreas Dölling0 Andreas Dölling0 griever0 Rudi0
Der Martin
0 griever
Hallo,
ich will dass man xy und z einegben kann,
kann man auch bereits, aber dann soll das volumen berechnet werden,
und aktualisiert wird bei geänderter eingabe.
Wie geht des?
Hier mein bisheriger code, der aber einen Fehler aufzeigt:
<html>
<head>
<style type="text/css">
<!--
body,input {
font-family: Tahoma;
font-size: 10pt;
text-align: left;
}
--></style>
<script language="javascript">
<!--
function sync (new_x)
{
x = formular01.x.value
document.write ("<div style="position: absolute; left: 600; right: 100;">'+x+'</div>")
}
//-->
</script>
</head>
<body style="background-color: #FFEEDD;">
<form name="formular01">
Geben Sie Werte XYZ ein:<br>
<br>
x: <input style="background-color= #DDDDFF; text-align: center;" size="3" name="x" maxlength="4" type="text" value="2"><br>
y: <input style="background-color= #DDDDFF; text-align: center;" size="3" name="y" maxlength="4" type="text" value="3"><br>
z: <input style="background-color= #DDDDFF; text-align: center;" size="3" name="z" maxlength="4" type="text" value="4"><br>
</form>
<script language="javascript">
<!--
var x,y,z,v
x = formular01.x.value
y = formular01.y.value
z = formular01.z.value
v = x*y*z
document.write (v)
//-->
</script>
</body>
</html>
Hallo,
Hallo,
ich will dass man xy und z einegben kann,
kann man auch bereits, aber dann soll das volumen berechnet werden,
und aktualisiert wird bei geänderter eingabe.
Wie geht des?
Hier mein bisheriger code, der aber einen Fehler aufzeigt:
Zunächst einmal der Fehler. Er liegt in dieser Zeile: document.write ("<div style="position: absolute; left: 600; right: 100;">'+x+'</div>").
Versuche es mal so:
document.write ('<div style="position: absolute; left: 600; right: 100;">'+x+'</div>');
Dann grundsätzlich: Du möchtest, daß auf eine Benutzereingabe hin etwas passiert. Das heißt, Du möchtest, daß Dein Script auf ein Ereignis passiert -> Stichwort "Events".
In Deinem Fall bietet sich an, entweder eine Änderung des Inhalts der Eingabefelder abzufangen ("change") oder aber einen Submit-Button einzubauen (z.B. mit dem Aufschrift "Volumen berechnen") und dann mit dem Event "submit" zu arbeiten.
Hilft Dir das weiter?
Ciao,
Andreas
Hallo,
es sollte heißen: "[...] daß Dein Script auf ein Ereignis reagiert [...]"...
Ciao,
Andreas
Mahlzeit.
Stimmt. Jetzt weiß ich, was ich übersehen hab bei meinem Tip.
MFG
Griever
In Deinem Fall bietet sich an, entweder eine Änderung des Inhalts der Eingabefelder abzufangen ("change") oder aber einen Submit-Button einzubauen (z.B. mit dem Aufschrift "Volumen berechnen") und dann mit dem Event "submit" zu arbeiten.
Ich hab mal onchange bei dem ersten feld gemacht und
ein 4. feld für das volumen,
aber wie änder ich den wert in v über die funktion?
<script language="javascript">
<!--
function sync (var)
{
var = formular01.'+var+'.value;
}
//-->
</script>
</head>
<body style="background-color: #FFEEDD;">
<form name="formular01">
Geben Sie Werte XYZ ein:<br>
<br>
x: <input style="background-color= #DDDDFF; text-align: center;" size="3" name="x" maxlength="4" type="text" value="2" onchange="sync(x)"><br>
y: <input style="background-color= #DDDDFF; text-align: center;" size="3" name="y" maxlength="4" type="text" value="3"><br>
z: <input style="background-color= #DDDDFF; text-align: center;" size="3" name="z" maxlength="4" type="text" value="4"><br>
<br>
v: <input style="background-color= #DDDDFF; text-align: center;" size="3" name="v" maxlength="4" type="text" value="0" readonly><br>
</form>
Hallo,
Ich hab mal onchange bei dem ersten feld gemacht und
ein 4. feld für das volumen,
aber wie änder ich den wert in v über die funktion?
indem Du auf das Feld v genauso zugreifst, wie auf die Felder für x, y und z, nur daß Du bei v den Wert nicht ausliest, sondern ihn zuweist.
Konkret:
baue Dir doch eine Funktion, die jedesmal, wenn sie aufgerufen wird, die Werte der Felder x, y und z ausliest, daraus das Volumen berechnet und diesen Wert wiederum dem Feld v zuweist.
Diese Funktion, die z.B. berechneVolumen() oder computeVolume() heißen könnte, rufst Du dann bei onchange oder onkeyup auf.
Ciao,
Andreas
Tag Rudi.
var = formular01.'+var+'.value;
Du solltest *nie* reservierte Wörter als Variablenname nutzen, in diesem Falle "var". Darüber hinaus solltest du dir mal die verschiedenen Möglichkeiten des Zugriffs auf Formularelemente ansehen, dort insbesondere Beispiel 3.
<input [...] size="3" name="x" maxlength="4" type="text" value="2" onchange="sync(x)">
Die Variable x ist undefined, du möchtest doch sicher den String "x" an die Funktion übergeben, oder?
Siechfred
Hallo Andreas,
Zunächst einmal der Fehler. Er liegt in dieser Zeile: document.write ("<div style="position: absolute; left: 600; right: 100;">'+x+'</div>").
Versuche es mal so:
document.write ('<div style="position: absolute; left: 600; right: 100;">'+x+'</div>');
wenn schon korrigieren, dann bitte richtig. Bei diesem Inline-Style fehlen sämtliche Maßeinheiten: Was sind die 600 bzw. 100? Nanometer? Parsec? Zoll? Kastanien?
So long,
Martin
Hallo,
wenn schon korrigieren, dann bitte richtig. Bei diesem Inline-Style fehlen sämtliche Maßeinheiten: Was sind die 600 bzw. 100? Nanometer? Parsec? Zoll? Kastanien?
Ellen natürlich, Sie Querulant!
Nee, hast natürlich völlig recht.
;)
Ich würde dem Frager aber - wie es auch schon Siechfried getan hat - ohnehin empfehlen, sich noch einmal mit ein paar Grundlagen zu befassen. Ganz ohne geht es eben nicht.
Ciao,
Andreas
Mahlzeit.
Hallo,
ich will dass man xy und z einegben kann,
kann man auch bereits, aber dann soll das volumen berechnet werden,
und aktualisiert wird bei geänderter eingabe.
Wie geht des?
Vielleicht solltest du versuchen, die Eingabefelde folgendermaßen anzusprechen:
document.forms["formular01"].elements["x"]
document.forms["formular01"].elements["y"]
document.forms["formular01"].elements["z"]
Ist zwar länger, aber dafür müßte es funktionieren. Außerdem solltest du immer zuerst den Body-Tag ansprechen.
Als Zweites würde ich dir empfehlen, mit onChange oder onBlur zu arbeiten. Es ginge auch mit OnKeyUp. Doch da müßte man vielleicht als sicherheitsabfrage mache, ob was drin steht und wenn, obs eine Zahl ist.
MFG
Griever