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.