Zum Inhalt

Validieren von Eingaben

In diesem Webformular wird die Entfernung zwischen zwei Eingaben mit einem Javascript hinterlegten Button berechnet. Die Outputparameter von und bis sind vom Typ float.

Dabei werden Formulareingaben (Werte von Controls) überprüft und eine Fehlermeldung ausgegeben, falls diese nicht korrekt sind. In das in der folgenden Abbildung dargestellte Formular sollen zwei Entfernungsangaben in die Controls vonWert und bisWert eingeben werden. Ist vonWert größer als bisWert soll mittels der alert()-Funktion von JavaScript jeweils eine entsprechende Fehlermeldung ausgeben und das Control entfernung mit Fragezeichen gefüllt werden.

Die JavaScript-Funktion heißt checkIntegerDifference() und wird im Control berechnung beim Auslösen eines onclick-Events aufgerufen. Die folgende Funktion leistet das Geforderte. Bei korrekten Eingaben gibt sie die berechnete Entfernung im Control entfernung aus, ansonsten meldet sie den Fehler und füllt das Control entfernung mit Fragezeichen aus.


function checkIntegerDifference() {
  /* Werte der Felder "vonWert" und "bisWert" abfrage */
  var von = af_getValue("vonWert", false);
  var bis = af_getValue("bisWert", false);
  var diff = parseInt(bis) - parseInt(von);
  if (isNaN(diff)) {
    af_setValue("entfernung", "???");
  }
  else { 
     if (diff < 0)  {
       alert( "Werte nicht korrekt. "+ 
                 "Der Wert von \"bis\" muss groesser als der von \"von \" sein!");
       af_setValue("entfernung", "???");
    }
    else  {
      af_setValue("entfernung", diff);
    }
  }
}

Formular zur Laufzeit mit gültigen Eingaben:

Formular mit ungültigen Eingaben:

Geben wir im „von“-Feld Buchstaben ein, erhalten wir eine Fehlermeldung darüber, dass es keinen gültigen Wert ist. Da die Funktion parseInt() das eingegebene Zeichen nicht in eine ganze Zahl konvertieren kann, gibt sie NaN(steht für not a number at all) zurück. Daher kommt die Fehlermeldung. Formular mit falscher nicht-numerischer Eingabe: