• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Megapeinlich, aber ich raffs nicht...

blueangel

Neues Mitglied
Kann mir mal jemand erklären, weshalb das nicht funzt...?


HTML:
<html>
<head>
<title>Tarifrechner</title>
<script type="text/javascript">
<!--
  function Rechner() {
     var a=0.1919;
     var b=0.1458;
     var c=88.06;
     var ErgebnisET=document.Formular.ET.value * a + c;
     alert ("Das Ergebnis ist bei Eintarifnutzung beträgt " ErgebnisET " Euro pro Jahr");
     }
//-->
</script>
</head>
<body>
<form name="Formular" action="">
<input type="text" name="ET" size="10">
<input type="button" value="Jahresrechnung ermitteln" onclick="Rechner()">
</form>
</body>
</html>
 
Also im Firefox funktioniert es. Aber kann sein dass der IE die Eingaben nicht als Zahlen kennt. Du musst die als integer parsen
Beispiel:
Code:
parseInt(document.Formular.Eingabe.value)
Und eine Bitte.
1. Bitte richtigen bereich auswählen.
2. Wenn du mehrere fragen hast die nicht sehr spezifisch oder anderes sind als deine anderen Fragen, benutze bitte dienen altes Thema und Stelle dort die Frage, bevor du 3 Themen nacheinander aufmachst :) ;)
 
ich kann mit Deiner AW leider nichts anfangen...(ich raff noch zu wenig...*schäm*)
Wenn möglich mal komplett einbauch, wäre nett!
Deiner Bitte werde ich in Zukunft nachkommen.
 
HTML:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function Quadrat() {
   var Ergebnis = parseInt(document.Formular.Eingabe.value) * parseInt(document.Formular.Eingabe.value);
   alert("Das Quadrat von " + document.Formular.Eingabe.value + " = " + Ergebnis);
}
//-->
</script>
</head>
<body>
<form name="Formular" action="">
<input type="text" name="Eingabe" size="3">
<input type="button" value="Quadrat errechnen" onclick="Quadrat()">
</form>
</body>
</html>

also du holst ja die Eingabe vom Benutzer aus dem Textfeld. Manche Browser sehen die Eingabe dann zwingend als Text. Und da man text nicht multiplizieren kann, funktioniert die funktion nicht :) Somit musst du ihm sagen, das die Eingaben Integer(Ganze Zahlen) sind. Das Funktioniert in dem du um deine Eingabe Variable ein parseInt legst. Das selbe funktioniert auch mit Fließkommazahlen (parseFloat()).
Hoffe konnte dir da ein bisschen Licht ins Dunkle bringen ;)
 
andem liegt es nicht...
kurze zwischenfrage...Bezieht sich deine Antwort denn auch genau auf meinen Quelltext?
Habe nen anderen Quelltext drin stehen...
Danke für Deine Mühe!

PS: Er bringt mir immer den Fehler ')' in Zeile 16 erwartet...?
 
HTML:
("Das Ergebnis ist bei Eintarifnutzung beträgt " ErgebnisET " Euro pro Jahr");
ersetze diesen Teil mal durch folgenden

HTML:
('Das Ergebnis ist bei Eintarifnutzung beträgt ' +ErgebnisET+ ' Euro pro Jahr');
Bin mir aber nicht sicher ob das so funktioniert, aber würde für mich mehr sinn ergeben...
 
andem liegt es nicht...
kurze zwischenfrage...Bezieht sich deine Antwort denn auch genau auf meinen Quelltext?
Habe nen anderen Quelltext drin stehen...
Danke für Deine Mühe!

PS: Er bringt mir immer den Fehler ')' in Zeile 16 erwartet...?

:shock: Also eben war da noch der andere Quelltext.
Aber Master Chief hat schon die Lösung für deinen Quelltext gegeben ^^
 
hatte mich vertippt...
WOW, es funzt doch! vielen Dank erst mal dafür,...wenn man zu lange an der kiste hockt, verblödet man noch ganz...!

Hab allerdings nochmals ne kleine Frage:
Wie kann ich die Ausgabe auf 2 dezimalstellen runden?
 
So weit ich weiss kann round() nur auf ganze Zahlen runden. Da musts du dir dann folgender Maßen helfen.
HTML:
 zahl = zahl * 100;
zahl = Math.round(zahl);
zahl = zahl/100;
Hier mal ne Funktion
HTML:
function roundNumber(number, stellen) {
number = parseInt(number);
stellen = parseInt(stellen);

var rundung = 1;
if(stellen < 0) stellen = 0;

for(var i=0; i < stellen; i++) { rundung *= 10; }

number *= rundung;
number = Math.round(number);
number /= rundung;

return number; 
}

// einsetzen: will es auf 3 Stellen nach dem Komma gerundet haben
var ergebnis = roundNumber(12.4157, 3);
edit:
nochmal was nachgetragen. Nun stimmts
 
Zuletzt bearbeitet:
Du suchst toFixed()

Kann mir mal jemand erklären, weshalb das nicht funzt...?
Nicht funzen ist eine denkbar schlechte Fehlrbeschreibung. Du kennst die Fehlerkonsole im Firefox? Nein, dann schau mal im Menü Extras, der IE versteckt seine Fehlermeldungen etwas und zeigt sie nur mit einem kleinen gleben Dreieck in der Statusleiste an, nach einem Doppelklick darauf kommst du an die Meldung.
 
Zurück
Oben