Funktionsaufruf geht nicht

exiter28

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem. Ich möchte in einer Funktion eine andere Funktion aufrufen.
Leider ****t das ganze nicht. Es geschieht nichts. Ich poste mal den Code....
Vielleicht kann mir einer helfen, ich bin ein anfänger was java angeht.....


Code:
<script>
// onclick="this.form.OutPutVal.value=InZahl(this.form.InputDigit1.value)"
function InZahl (Wert)
  {
  var PosPunkt = Wert.indexOf(".",0);
  var PosKomma = Wert.indexOf(",",0);
  if (PosKomma < 0) PosKomma = Wert.length;

  while ((0 <= PosPunkt) && (PosPunkt < PosKomma))
    {
    Wert = Wert.substring(0, PosPunkt) + Wert.substring(PosPunkt + 1, Wert.length);
    PosPunkt = Wert.indexOf(".",0);
    PosKomma--;
    }

  PosKomma = Wert.indexOf(",",0);
  if (PosKomma >= 0)
    {
    Wert = Wert.substring(0, PosKomma) + "." + Wert.substring(PosKomma + 1, Wert.length);
    }

  return parseFloat(Wert);
  }

function Calc() {
   if(document.CalcForm.InputDigit1.value) {
   var Digit1 = document.CalcForm.InputDigit1.value;
   var eingabe
   eingabe = Number(Digit1);
   //eingabe = InZahl(document.CalcForm.OutPutVal.value);
   if(isNaN(eingabe)) {
      //alert("Eingabe ist keine Zahl!");
      InZahl(eingabe);
      var Digit2 = 31.1034768;
      var ergebnis = eingabe / Digit2;
      document.CalcForm.OutPutVal.value = Math.round(ergebnis*100)/100;
      }
      else {
      var Digit2 = 31.1034768;
      var ergebnis = eingabe / Digit2;
      document.CalcForm.OutPutVal.value = Math.round(ergebnis*100)/100;
      }
   }
}
</script>

Hintergrund:

es soll geprüft werden, ob die eingabe als dezimaltrennzeichen einen punkt enthält.
wenn nicht, dann soll die funktion: InZahl aufgerufen werden (If bedingung).
Das komische ist nur, wenn ich die Funtkion InZahl bei der If Bedingung aufrufe, funktioniert gar nichts mehr. Wenn ich diese weglasse, dann kann ich zumindest
die meldungsausgabe ausgeben.

Danke schon mal...
 
Hallo,

nochmals JavaScript ist nicht Java. Siehe hier.

Zu deinem Problem:
Installier dir mal den Firebug (Firefox Addon, bekommst du hier. Dieser bietet eine Konsole mit Fehlerausgabe, falls etwas in deinem JavaScript nicht funktioniert. Oder auch einen Debugger, mit dem du Schritt für Schritt nachverfolgen kannst, was passiert.

Bei mir geht aber alles, kann deinen Fehler nicht nachvollziehen:
HTML:
<!-- quick & dirty -->
<html>
<script type="text/javascript">
// onclick="this.form.OutPutVal.value=InZahl(this.form.InputDigit1.value)"
function InZahl (Wert)
  {
  var PosPunkt = Wert.indexOf(".",0);
  var PosKomma = Wert.indexOf(",",0);
  if (PosKomma < 0) PosKomma = Wert.length;
 
  while ((0 <= PosPunkt) && (PosPunkt < PosKomma))
    {
    Wert = Wert.substring(0, PosPunkt) + Wert.substring(PosPunkt + 1, Wert.length);
    PosPunkt = Wert.indexOf(".",0);
    PosKomma--;
    }
 
  PosKomma = Wert.indexOf(",",0);
  if (PosKomma >= 0)
    {
    Wert = Wert.substring(0, PosKomma) + "." + Wert.substring(PosKomma + 1, Wert.length);
    }
 
  return parseFloat(Wert);
  }
 
function Calc() {
   if(document.CalcForm.InputDigit1.value) {
   var Digit1 = document.CalcForm.InputDigit1.value;
   var eingabe
   // eingabe = Number(Digit1);
   eingabe = InZahl(document.CalcForm.OutPutVal.value);
   if(isNaN(eingabe)) {
      //alert("Eingabe ist keine Zahl!");
      InZahl(eingabe);
      var Digit2 = 31.1034768;
      var ergebnis = eingabe / Digit2;
      document.CalcForm.OutPutVal.value = Math.round(ergebnis*100)/100;
      }
      else {
      var Digit2 = 31.1034768;
      var ergebnis = eingabe / Digit2;
      document.CalcForm.OutPutVal.value = Math.round(ergebnis*100)/100;
      }
   }
}
</script>
<body>
  <form name="CalcForm">
    In: <input type="text" name="InputDigit1"><br>
    Out: <input type="text" name="OutPutVal"><br>
    <input type="button" onclick="this.form.OutPutVal.value=InZahl(this.form.InputDigit1.value)">
  </form>
</html>
Gruß
BK
 
Zuletzt bearbeitet:
hallo,

ok, stimmt, javaScript.

Also die InZahl Funktion alleine funktioniert schon. Aber wenn ich die Calc Funtkion mit einsetze nicht mehr.

<form name="CalcForm" action="JavaScript:Calc(); ">
aktueller Kurs:<br>
<input type="text" name="InputDigit1"><br>
<input type="submit" value="Berechnen"><br>
Wert pro Gramm:<br>
<input type="text" name="OutPutVal" readonly="readonly"> <br>
</form>
 
Hallo,

Firebug meldet mir den Fehler "Wert.indexOf is not a function" in der Zeile "var PosPunkt = Wert.indexOf(".",0);".

Gruß
BK
 
hmmm.. aber wieso funktioniert die Funktion InZahl alleine dann?
die funktioniert ja nur nicht, wenn ich diese mit der funktion Calc
aufrufe?
 

Neue Beiträge

Zurück