Hallo,
ich habe ein Formular mit mehreren Eingabefeldern.
Beim Absenden des Formulars, also beim Klicken auf den Submit-Button, soll überprüft werden, ob in allen Feldern etwas eingegeben wurde.
Wenn eines der Felder Leergelassen wurde, soll das Formular nicht abgesendet werden und alle Leergelassene Felder sollen den Hintergrund (Rot) wechseln.
Hier ist die Quellcode:
Test
function CheckInput () {
var fields= new Array(„Vorname“, „Name“, „Adresse“);
var ok = true;
var first = -1;
for (i=0; i<document.forms[0].elements.length; i++)
{
document.forms[0].elements(i).bgColor="";
if (Contains(document.forms[0].elements(i).name, fields)==true && document.forms[0].elements(i).value=="")
{
if (first==-1)
first = i;
ok = false;
document.forms[0].elements(i).bgColor=„red“;
}
}
if (!ok)
{
alert(„Sie haben nicht alle benötigten Felder ausgefüllt.“);
document.forms[0].elements(first).focus();
}
return ok
}
Vorname:
Name:
Adresse:
Telefon:
Leider funktioniert es nicht!!
Kann mir jemand Helfen?
Vielen Dank
oberdoerfer
Was tut den genau nicht?
Versuch doch mal folgendes:
anstatt:
dieses hier:
und dann in der Javascript Funcktion CheckInput() ein form.submit(); wobei form hier dein formular Object ist.
Gruß.
Was tut den genau nicht?
Es wird einfach weiter geleitet! d.h. erscheint Weiter.php-Seite, obwohl gar keine Felder ausgefühlt sind!!!
Versuch doch mal folgendes:
anstatt:
dieses hier:
und dann in der Javascript Funcktion CheckInput() ein
form.submit(); wobei form hier dein formular Object ist.
Ich habe das nicht kopiert mit form.submit(); wo muss es hin?
Ich bin noch Anfänger 
Grüß
oberdoerfer
Versuch mal folgendes:
Das steht schon in deiner Funktion:
if (!ok)
{
alert(„Sie haben nicht alle benötigten Felder ausgefüllt.“);
document.forms[0].elements(first).focus();
}
und jetzt mach mal das daraus:
if (!ok)
{
alert(„Sie haben nicht alle benötigten Felder ausgefüllt.“);
document.forms[0].elements(first).focus();
} else {
document.forms[0].submit();
}
also einfach den den else teil an die vorhandene If abfrage anhängen.
MFG
thomas
Versuch mal folgendes:
else {
document.forms[0].submit();
}
also einfach den den else teil an die vorhandene If abfrage
anhängen.
MFG
thomas
Es tut’s gar nichts!
Unten in der Browser steht „Fahler auf der Seite!“
Es wird auch nicht weiter geleitet!
Was könnte es sein?!
Grüß
oberdoerfer
Es tut’s gar nichts!
Unten in der Browser steht „Fahler auf der Seite!“
und links davon ist ein gelbes ausrufunsgzeichen? dort mal drauf doppelklicken. dann sollte eine aussagefaehige fehlermeldung erscheinen.
wenn es ein mozilla o.ö. ist kriegt man eine fehlermeldung mit „javascript:“ in der adresszeile, bei ie ggflls. unter extras optionen „scriptfehler anzeigen“ … od. so.
Es wird auch nicht weiter geleitet!
Was könnte es sein?!
forms.elements ist ein array, keine funktion. also muss es mit eckigen klammern notiert werden.
anstatt
dem onclick im submit besser:
onsubmit=„return CheckInput();“
ins formatag
und links davon ist ein gelbes ausrufunsgzeichen? dort mal
drauf doppelklicken. dann sollte eine aussagefaehige
fehlermeldung erscheinen.
Ich arbeite mit IE6!
Als Fehlermeldung kommt folgendes raus:
Zeile:15 Zeichen: 5 Fehler: Objekt erwartet
Da ich Anfänger bin, kann ich damit nichts anfangen 
Es wird auch nicht weiter geleitet!
forms.elements ist ein array, keine funktion. also muss es mit
eckigen klammern notiert werden.
Habe gemacht. Keine Reaktion!
dem onclick im submit besser:
onsubmit=„return CheckInput();“
ins formatag
Jetzt kommt keine Fehlermeldung, aber es wird auch nicht weiter geleitet!!!
Was tun?!
Grüß
oberdoerfer
nur falls dir der andere tip (selfhtml) nicht weitergeholfen ahben sollte:
und links davon ist ein gelbes ausrufunsgzeichen? dort mal
drauf doppelklicken. dann sollte eine aussagefaehige
fehlermeldung erscheinen.
Ich arbeite mit IE6!
Als Fehlermeldung kommt folgendes raus:
Zeile:15 Zeichen: 5 Fehler: Objekt erwartet
Da ich Anfänger bin, kann ich damit nichts anfangen 
was steht denn in zeile 15?
poste noch mal deinen aktuellen gesamten quelltext. schriebe ihn zw. pre-tags
Es wird auch nicht weiter geleitet!
forms.elements ist ein array, keine funktion. also muss es mit
eckigen klammern notiert werden.
Habe gemacht. Keine Reaktion!
dem onclick im submit besser:
onsubmit=„return CheckInput();“
ins formatag
Jetzt kommt keine Fehlermeldung, aber es wird auch nicht
weiter geleitet!!!
Was tun?!
mit alert als erste zeile in der funktion pruefen, ob sie ueberhaupt aufgerufen wird.
mit alert ok ausgeben, bevor es mit return zurueckgegeben wird …
poste noch mal deinen aktuellen gesamten quelltext. schriebe
ihn zw. pre-tags
Was meinst du mit "zw. pre-tags? " 
Hier ist noch mal die Quellcode:
1
2
3 Test
4
5 function CheckInput () {
6
7 var fields= new Array(„Vorname“, „Name“, „Adresse“);
8
9 var ok = true;
10 var first = -1;
11
12 for (i=0; i<document.forms[0].elements.length; i++)
13 {
14 document.forms[0].elements[i].bgColor="";
was steht denn in zeile 15?
15 if (Contains(document.forms[0].elements[i].name, fields)==true && document.forms[0].elements[i].value=="")
16 {
17 if (first==-1)
18 first = i;
19
20 ok = false;
21 document.forms[0].elements[i].bgColor=„red“;
22 }
23 }
24
25 if (!ok)
26 {
27 alert(„Sie haben nicht alle benötigten Felder ausgefüllt.“);
28 document.forms[0].elements[first].focus();
29 }
30 else {
31 document.forms[0].submit();
32 }
33 return ok
34 }
35
36
37
38
39
40 Vorname:
41 Name:
42 Adresse:
43 Telefon:
44
45
46
mit alert als erste zeile in der funktion pruefen, ob sie
ueberhaupt aufgerufen wird.
mit alert ok ausgeben, bevor es mit return zurueckgegeben wird
Habe ich versucht, bei erster if- Anweisung funktioniert es nicht?!
Und ich stehe wieder mit leereren Händen ;-(
Grüß
oberdoerfer
poste noch mal deinen aktuellen gesamten quelltext. schriebe
ihn zw. pre-tags
Was meinst du mit "zw. pre-tags? " 
was steht denn in zeile 15?
15 if (Contains(document.forms[0].elements[i].name,
fields)==true && document.forms[0].elements[i].value=="")
am 5. zeichen beginnt contains. die fehlermeldung weist dich also daraufhin, dass es contains nciht gibt.
Test
function CheckInput ()
{
var fields= new Array("Vorname", "Name", "Adresse");
var ok = true;
var e = false;
var first = true;
var f = document.forms[0];
for (i=0; i\<fields.length; i++)
{
//document.forms[0].elements[i].bgColor="";
e = f.elements[fields[i] ]
e.style.backgroundColor="white";
if ( e.value=="")
{
if (first===true)
{
e.focus();
first = false;
}
ok = false;
e.style.backgroundColor="red";
}
}
if (!ok)
{
alert("Sie haben nicht alle benötigten Felder ausgefüllt.");
}
else
{
document.forms[0].submit();
}
return ok
}
Vorname:
Name:
Adresse:
Telefon:
1 „Gefällt mir“
anstatt
dem onclick im submit besser:
onsubmit=„return CheckInput();“
ins formatag
ist onsubmit nicht deprecated?
mfg
Vielen Dank!
Das ist einfach PERFEKT!!!
Grüß
oberdoerfer
anstatt
dem onclick im submit besser:
onsubmit=„return CheckInput();“
ins formatag
ist onsubmit nicht deprecated?
wenn es nach mir ginge waere alles js deprecated …
der klare vorteil ist, dass du mit button onclick das formular nciht ohne js abschicken kannst. mit form onbsubmit geht es auch ohne js und er faellt auf die serverseitige pruefung zurueck, die ja ohnehin stattfinde(t|n sollte)
http://www.w3.org/TR/html401/interact/scripts.html#a…