Thomas Schmid: Formulardaten mit JavaScript prüfen...

Hi Folks...

Eigentlich ist es ein simples Skript zum Überprüfen eines Formularfelds, aber wieso (*verd.#$*...) bringt Navigator 3 die Fehlermeldung
"undefined is not a number" ?!

Was bedeutet die Fehlermeldung?
Was mach ich da falsch?
Wahrscheinlich gibt es da eine einfache Lösung, ich komm wahrscheinlich nur nich drauf

Hier der Quelltext der Funktion:
<script language="JavaScript">
<!--
function chkFormular()
{
if(document.Formular.name.value == "")
{
alert("Bitte Ihren Namen eingeben!");
document.Formular.name.focus();
return false;
}
}

//-->
</script>
(Aufruf mit onSubmit...usw)

Danke schon mal
Ciao
TOM

  1. Hi Tom,

    Eigentlich ist es ein simples Skript zum Überprüfen eines Formularfelds, aber wieso (*verd.#$*...) bringt Navigator 3 die Fehlermeldung
    "undefined is not a number" ?!

    Da hat Netsi 3 wohl ein Problem mit einer leeren Zeichenkette und interpretiert diese als numerischen Wert, welcher -weil nicht vorhanden- den Status 'undefined' hat.
    Man kann ihn aber überlisten, indem man den Inhalt des Eingabefeldes nocheinmal seperat als (neuen) String definiert. Da damit aber wieder zumindest der IE 3 ein Problem hat, sollte man es nur für Netsi so machen.

    Das Script, welches mit IE 3 (getestet) IE 4 (nicht getestet, aber wahrscheinlich) sowie Netsi 3 und 4 (getestet) und StarOffice 4.0 (getestet) funktioniert
    sieht vereinfacht wie folgt aus. Allerdings sollte als Name für das Eingabefeld nicht die wortgleiche Bezeichnung 'name' verwendet werden, das gibt Komplikationen. Ich denke mal, das hast du in dem geposteten Code nur des einfachen Verständnisses halber so genannt, ansonsten solltest du auch das ändern, da sonst zumindest Netsi 3 wieder eine Fehlermeldung
    beim Focus bringt.

    Hier nun der Code:

    <HTML>
    <SCRIPT LANGUAGE ="JavaScript">
    function chkFormular()
    {
    if(navigator.appName == "Netscape")
    _name = new String(document.Formular.eingabe.value)
    else
    _name = document.Formular.eingabe.value
    if(_name == "")
    {
    alert("Bitte Ihren Namen eingeben!");
    window.document.Formular.eingabe.focus();
    return false;
    }
    }
    </SCRIPT>
    <BODY>
    <FORM NAME="Formular" onSubmit="chkFormular()">
    <INPUT NAME="eingabe">
    <INPUT TYPE=submit NAME="und_weg">
    </FORM>
    </BODY>

    </HTML>

    Tschau Ralph, der Script-Doctor.

    1. cOOl!
      Hat gefunzt!
      Danke, Herr Doktor...