Der folgende Beitrag wurde am 05. 04. 2004, 21:31 Uhr von Andreas veröffentlicht.
Hallo,
Ich stehe kurz vor'm Verzweifeln.
Egal, wie ich nachfolgenden Code auch umstelle, ich erhalte IMMER die Fehlermeldung "Objekt erwartet". Ich habe den Code auf ein Eingabefeld reduziert, da das System bei allen Feldern gleich ist, nur die Parameter variieren:
<html>
<head>
<script language="javascript" type="text/javascript" src="JS_formular.js"></script>
</head>
<body onload="document.forms[0].elements[1].focus()">
<form [...]>
<input type="text" name="name" onblur="ueberpruefung(0,1,0,1)">
</form>
</body>
</html>
Die Datei JS_formular.js, die im <head> eingebunden ist und die Funktion "ueberpruefung()" enthält, die bei onblur aufgerufen wird, sieht folgendermassen aus:
[...] Variablen deklarieren [...]
function ueberpruefung(form_nr, feld_nr, feld_art, pflicht)
{
inhalt = document.forms[form_nr].elements[feld_nr].value;
laenge = inhalt.length;
if (pflicht == 1)
{
if (laenge == 0)
alert("Pflichtfeld nicht ausgefüllt");
}
if (laenge < laenge_min[feld_art])
alert ("Zu kurz");
if (laenge > laenge_max[feld_art])
alert ("Zu lang");
fehler = zeichen_pruefen(inhalt, feld_art);
if (!fehler)
{
if (feld_art == 0)
namen_formatieren(form_nr, feld_nr);
if (feldart = 4)
doppelte_zeichen(inhalt, feld_art);
}
}
Ich weiss einfach nicht mehr weiter.
Gruss, Andreas
Der folgende Beitrag wurde am 05. 04. 2004, 22:03 Uhr von fastix® veröffentlicht.
Moin!
> Ich stehe kurz vor'm Verzweifeln.
Ich auch. Bisher war ich strikt der Meinung auch die Formularelemente würden ab 0 gezählt. Du hast nur eines: wieso hat das die Nr. 1?
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch für seriöse Agenturen.
Der folgende Beitrag wurde am 05. 04. 2004, 22:03 Uhr von fastix® veröffentlicht.
Moin!
Ach so: wieso nicht onchange?
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch für seriöse Agenturen.
Der folgende Beitrag wurde am 06. 04. 2004, 07:50 Uhr von Andreas veröffentlicht.
Moin :-)
Wenn ich onchange verwende und das Feld verlasse, dann bekomme ich keine Fehlermeldung, allerdings wird dann auch nicht überprüft, ob ein Pflichtfeld ausgefüllt wurde oder nicht, d.h. die Funktion wird nicht aufgerufen. Wenn ich dann wieder in's Feld zurückspringe, dann wird wieder ein Objekt erwartet (?!?!?). Folglich ist onblur die einzige Möglichkeit, die aber nicht so will, wie sie soll *grml*
Gruss, Andreas
Der folgende Beitrag wurde am 06. 04. 2004, 07:54 Uhr von Andreas veröffentlicht.
Ich habe mehrere Felder, nur wollte ich der Übersicht halber nur eines aufführen, da das System bei allen das gleiche ist. Nur die Parameter ändern sich.
Gruss, Andreas
Der folgende Beitrag wurde am 06. 04. 2004, 08:15 Uhr von Struppi veröffentlicht.
> <html>
> <head>
> <script language="javascript" type="text/javascript" src="JS_formular.js"></script>
> </head>
> <body onload="document.forms[0].elements[1].focus()">
Dein Formular hat kein "elements[1]", die meisten Programmiersprachen fangen bei null an zu zählen.
> <form [...]>
> <input type="text" name="name" onblur="ueberpruefung(0,1,0,1)">
Du kannst dir den ganzen schmodder aber sparen, wenn du direkt die Referenz des Feldes übergibst.
<input type="text" name="name" onblur="ueberpruefung(this,0,1)">
> function ueberpruefung(form_nr, feld_nr, feld_art, pflicht)
> {
Jetzt:
function ueberpruefung(feld_ref, feld_art, pflicht)
> inhalt = document.forms[form_nr].elements[feld_nr].value;
> laenge = inhalt.length;
lokale Variaben solltest du auch immer Lokal halten, da sie sonst von einer anderen Funktion geändert werden könnten.
var inhalt = feld_ref.value;
var laenge = inahlt.length;
Struppi.
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4