Bin am verzweifeln
Schnapsonline
- javascript
Hallo Leute, ich bin am verzweifeln.
Ich habe irgendwo einen Fehler.
Das Ergebniss wird mir nicht angezeigt
hier das Script:
<script type="text/javascript">
function wasser1 {
document.dtw3.vol.value=document.dtw3.amount.value * ( document.dtw3.conc.value - document.document.dtw3.dist.value) / document.dtw3.dist.value;
}
</script>
<ADDRESS STYLE="color: rgb(0,255,0); text-align: center; margin-bottom: 0px;"><SPAN STYLE="color: rgb(0,255,0); font-style: normal;">Angesetzter zum Verdünnen Für Liköre</SPAN></ADDRESS>
<FORM NAME="dtw3">
<CENTER><TABLE BORDER CELLPADDING=2>
<TR bgcolor="ff0000"><TD colspan=2><INPUT NAME="amount" SIZE=4 value=" 1.5"> <FONT SIZE="2"> L Eingangs Destillat mit <INPUT NAME="conc" SIZE=4 value=" 70"> % alcohol</TD>
<TR bgcolor="ff0000"><td colspan=2><FONT SIZE="2">Wieviel % Vol Ausgangs Destillat <INPUT NAME="dist" SIZE=4 value=" 40"> %
<TR bgcolor="ff0000">
<TD VALIGN="bottom" ALIGN="center"><INPUT TYPE="button" VALUE="Rechnen"
onClick="wasser1">
<TD><FONT SIZE="2">Sie benötigen <INPUT NAME="vol" SIZE=4> L Wasser</TD>
</TR></TABLE></FORM>
kann mir jemad helfen ?
vg
Herbert
Hallo Leute, ich bin am verzweifeln.
Ich habe irgendwo einen Fehler.
Die Fehlermeldung kannst du der JavaScript-Konsole des Browsers entnehmen.
document.document.dtw3.dist.value
TypeError: document.document is undefined
Mathias
Danke, hat mir sehr geholfen.
Jetzt habe ich noch ein Problem.
Hier der das script:
<script type="text/javascript">
function wasser1() {
var sprit=getElementById('dtw3.amount.value');
var wasser=dtw3.amount.value * ( dtw3.conc.value - dtw3.dist.value) / dtw3.dist.value;
dtw3.vol.value=(sprit + wasser);
}
</script>
sprit hat den Inhalt von 1.5
wasser hat den Inhalt von 1.25
In dtw3.vol.value sollte jetzt "2.75" stehen. Es steht aber "1.5.1.75" drin.
Was habe ich falsch gemacht ?
Hi,
Was habe ich falsch gemacht ?
Hier: Aus Ungeduld doppelt gepostet.
Deine Frage ein mal zu stellen, reicht.
MfG ChrisB
»» <TD VALIGN="bottom" ALIGN="center"><INPUT TYPE="button" VALUE="Rechnen"
> onClick="wasser1">
Hi!
Wenn du den Event Handler als Attribut notierst und eine Funktion aufrufen willst, musst du die Klammern zum Funktionsaufruf schon setzen:
<TD VALIGN="bottom" ALIGN="center"><INPUT TYPE="button" VALUE="Rechnen"
onClick="wasser1()">
im Gegensatz dazu:
element.onclick = functionReference;
oder
element.addEventListener("click",functionReference,false);
Davon abgesehen rate ich dir davon ab, alte HTML-Attribute a la bgcolor usw. zu verwenden.
Liebe Grüße, Leo
Kleiner Nachtrag:
Dieser Code sollte eigentlich auch einen Fehler verursachen:
function wasser1{
//Code
}
Wenn du eine Funktion definierst, musst du immer die Parameterklammern setzen:
function example()
{
//Code
}
Danke, hat mir sehr geholfen.
Jetzt habe ich noch ein Problem.
Hier der das script:
<script type="text/javascript">
function wasser1() {
var sprit=getElementById('dtw3.amount.value');
var wasser=dtw3.amount.value * ( dtw3.conc.value - dtw3.dist.value) / dtw3.dist.value;
dtw3.vol.value=(sprit + wasser);
}
</script>
sprit hat den Inhalt von 1.5
wasser hat den Inhalt von 1.25
In dtw3.vol.value sollte jetzt "2.75" stehen. Es steht aber "1.5.1.75" drin.
Was habe ich falsch gemacht ?
Hi,
In dtw3.vol.value sollte jetzt "2.75" stehen. Es steht aber "1.5.1.75" drin.
Was habe ich falsch gemacht ?
Du hast Strings verkettet.
Aus Inputfeldern ausgelesene Werte sind Strings. Um mit ihnen unter Verwendung des doppelt belegten Operators + rechnen zu können, musst du sie erst in Zahlen umwandeln.
Das geht bspw. mittels parseInt/parseFloat; oder auch in dem du sie einfach mit 1 multiplizierst, dabei werden sie automatisch in eine Zahl umgewandelt.
MfG ChrisB
Hallo,
oder auch in dem du sie einfach mit 1 multiplizierst, dabei werden sie automatisch in eine Zahl umgewandelt.
...oder einfach in die dritte Potenz erheben und die Kubikwurzel ziehen.
Wer's gern komplizierter hat, kann auch den unären +
-Operator davorsetzen:
var a="1", b="2";
alert( a + b) // 12
alert( (+a) + (+b) ); // 3
SCNR ;)
Don P
[latex]Mae govannen![/latex]
Wer's gern komplizierter hat, kann auch den unären
+
-Operator davorsetzen:
var a="1", b="2";
alert( a + b) // 12
alert( (+a) + (+b) ); // 3
http://forum.de.selfhtml.org/cgi-bin/user/fo\_post
Zur Vervollständigung erwähne ich dann noch Number()
~~~javascript
var a="1", b="2";http://forum.de.selfhtml.org/cgi-bin/user/fo_post
alert(Number(a) + Number(b)); // 3
Vorausgehende[1] Prüfung, ob Zahlenwerte eingegeben wurden setze bei ich dem originalen Problem mit Werten aus Eingabefeldern voraus.
Stur lächeln und winken, Männer!
Kai
[1] oder heißt es inzwischen vorrausgehende {SCNR}
[latex]Mae govannen![/latex]
http://forum.de.selfhtml.org/cgi-bin/user/fo_post
Zur Vervollständigung erwähne ich dann noch Number()
[code lang=javascript]var a="1", b="2";http://forum.de.selfhtml.org/cgi-bin/user/fo_post
WTF ist da passiert? Ich hab die URLs jedenfalls nicht eingefügt.
Stur lächeln und winken, Männer!
Kai
Vorausgehende[1] Prüfung, ob Zahlenwerte eingegeben wurden setze bei ich dem originalen Problem mit Werten aus Eingabefeldern voraus.
parseInt, Number und + sind bereits Prüfungen, ob Zahlenwerte eingegeben wurden. Wenn es keine Zahlenwerte sind, geben sie NaN zurück.
var string1 = document.forms.form1.elements.feld1.value;
var string2 = document.forms.form1.elements.feld2.value;
var number1 = Number(string1);
var number2 = Number(string2);
if (isNaN(number1) || isNaN(number2)) {
alert('Bitte geben Sie gültige Zahlenwerte ein.');
return;
}
var summe = number1 + number2;
alert('Summe: ' + summe);
[1] oder heißt es inzwischen vorrausgehende {SCNR}
Ich dachte »voraus gehende«? So wie »Fahrrad fahren«. ;)
Mathias
[latex]Mae govannen![/latex]
Vorausgehende[1] Prüfung, ob Zahlenwerte eingegeben wurden setze bei ich dem originalen Problem mit Werten aus Eingabefeldern voraus.
parseInt, Number und + sind bereits Prüfungen, ob Zahlenwerte eingegeben wurden. Wenn es keine Zahlenwerte sind, geben sie NaN zurück.
Ja. Und da man mit NaN recht schlecht weiterrechnen kann, muß in jedem Fall eine weitere Prüfung her. Weshalb ich diese _vor_ die Typumwandlung per parseXXX, Numner oder anderer Methodik setzen wollte, weiß ich allerdings nicht :) Ok, es war früh morgens um 14:xx Uhr, das fällt dann noch unter "im Halbschlaf"
'Vorausgehende[1] Prüfung, ob Zahlenwerte eingegeben wurden'.replace('Vorausgehende', 'Nachfolgende');
Stur lächeln und winken, Männer!
Kai