Formular überprüfung
Mr.Miyagi
- javascript
Hi Leute,
ich habe folgendes Problem ich möchte per JavaScript eine Formular überprüfen machen ist auch schon längst fertig.
So jetzt soll eine Liste generiert werden mit den Feldern die noch ausgefüllt werden müssen.
Die Liste soll in einen neu Öffneden Fenster angezeigt werden. Öffnen des Fenster ist auch erledigt.
Aber wie kann ich jetzt die noch zu ausfüllenden Felder übergeben?
Ich bedanke mich schon mal für Eure Hilfe.
MFG
Mr.Miyagi
Die Liste soll in einen neu Öffneden Fenster angezeigt werden. Öffnen des Fenster ist auch erledigt.
Aber wie kann ich jetzt die noch zu ausfüllenden Felder übergeben?
In dem Du z.B. aus dem Popup auf das öffnende Fenster zugreifst? Am Ende sind's alles Window-Objekte...
Nabend,
In dem Du z.B. aus dem Popup auf das öffnende Fenster zugreifst?
Die andere Richtung ist natürlich auch möglich, denn
Am Ende sind's alles Window-Objekte...
;)
Aber was hilft eine JS-Überprüfung, wenn ich ohne JS daher komme?
Bis denne,
Aber was hilft eine JS-Überprüfung, wenn ich ohne JS daher komme?
Ich denke, der Autor der Frage ist sich darüber im klaren, das Client-Logik lediglich der Convenience dient, und eine Nichtausführung der Client-Logik lediglich zu gestalterischen Einschränkungen für den Nutzer führen sollte, wenn überhaupt. Somit wird er sicherlich eine serverseitige Alternative anbieten. Besonderes bequem macht er sich natürlich, indem er Struts-Validator oder ähnliches einsetzt.
Deswegen hat er nicht gefragt
Aber was hilft eine JS-Überprüfung, wenn ich ohne JS daher komme?
moin,
Hi Leute,
ich habe folgendes Problem ich möchte per JavaScript eine Formular überprüfen machen ist auch schon längst fertig.
ersteres ich empfehlen ein neuer update des deinigen deutschs'.
das geschriebene vor dem absenden noch einmal zu überfliegen, ist wohl kaum zu viel verlangt - weil aus dem kauderwelsch deines ersten satzes wird man nur hellseherisch schlau ..
So jetzt soll eine Liste generiert werden mit den Feldern die noch ausgefüllt werden müssen.
Die Liste soll in einen neu Öffneden Fenster angezeigt werden. Öffnen des Fenster ist auch erledigt.Aber wie kann ich jetzt die noch zu ausfüllenden Felder übergeben?
sollen die felder in das neue fenster oder nur ein text, der darauf hinweist, dass diese felder noch ausgefüllt werden sollen?
bei letzterem reicht auch eine alert()-meldung aus, da braucht man kein popup mehr zu öffnen...
für beide varianten wäre eine möglichkeit:
lege vor der prüfung ein js-array an, z.b. var FehltNoch = new Array();
ergänze alle deine prüfroutinen mit der erweiterung(z.b. "else"), dass sie dann den namen des geprüften feldes in das array "FehltNoch" schreiben.
z.b. bei prüfung des vornamens:
if([..]) else ( FehltNoch = "Vorname"; }
am ende gibst du es aus, indem du die werte zu einem string zusammenfasst:
var FehlerAusgabe = FehltNoch.join(",\n");
zu variante 1:
dein popup hat einen namen. du hast event. so geöffnet:
FehlerFenster = window.open('','fehler','[..]');
dann schreibst du die liste in das fenster per:
FehlerFenster.document.open();
FehlerFenster.document.write(FehlerAusgabe);
FehlerFenster.document.close();
zu variante 2:
alert(FehlerAusgabe);
.. das wäre es.
gruß hein
Danke für dein schnelle Hilfe
hi hein,
ersteres ich empfehlen ein neuer update des deinigen deutschs'.
das geschriebene vor dem absenden noch einmal zu überfliegen, ist wohl kaum zu viel verlangt - weil aus dem kauderwelsch deines ersten satzes wird man nur hellseherisch schlau ..
in diesem falle wäre ich mit dem "anschiss" etwas vorsichtig - der name "mr.miyagi" könnte durchaus auf einen mitmenschen hinweisen, der deutsch nicht als muttersprache hat.
(alllerdings wäre dann ein hinweis von ihm angebracht gewesen, um solche missverständnisse von vorneherien auszuschliessen ...)
gruss,
wahsaga
Hi Leute,
ich habe das Script jetzt eigentlich soweit fertig.
Problem:
Das Array mit im Alert Fenster nicht ausgegebn.
Kann mir einer sagen, welchen Fehler ich mache
Schon mal Danke
MFG
Mr.Miyagi
//Kontrolle Formular vollständig ausgefüllt
feldkontrolle=true;
var ausgabe=true;
var nicht=new Array("Folgende Felde müssen ausgefüllt werden:");
var fehler = nicht.join(",\n");
if(!check_empty(document.emailformular.realname.value))
{
feldkontrolle = false;
var ausgabe=false;
var neu = nicht.push("Name");
}
if(!check_empty(document.emailformular.strasse.value))
{
feldkontrolle = false;
var ausgabe=false;
var neu = nicht.push("Starße");
}
//Leere Felder Ausgeben
if(ausgabe==false)
{
alert(fehler+"Bitte füllen Sie die felder jetzt aus");
}
return feldkontrolle;
}
//überprüft des Textfeld auf eine eingabe
function check_empty(eingabe)
{
return (eingabe.length > 0); // gibt false zurück wenn leehr
}
Hallo Mr.Miyagi,
var ausgabe=true;
if(!check_empty(document.emailformular.realname.value))
{
feldkontrolle = false;
var ausgabe=false;
var neu = nicht.push("Name");
}
Du setzt hier eine neue Variable "ausgabe", die nur innerhalb des if-Blocks gültig ist. Lass das "var vor "ausgabe=false;" weg, dann sollte es gehen.
Grüße
Andreas
var feldkontrolle=true;
var ausgabe=true;
var nicht=new Array("Folgende Felde müssen ausgefüllt werden:");
var fehler = nicht.join(",\n");
function emailkontrolle()
{
//Kontrolle Formular vollständig ausgefüllt
}
Das Problem hat sich jedoch nicht gelöst, an das "Array nicht" wird der gewünschte String nicht angehangen.
var feldkontrolle=true;
var ausgabe=true;
var nicht=new Array("Folgende Felde müssen ausgefüllt werden:");
var fehler = nicht.join(",\n");
function emailkontrolle()
{
//Kontrolle Formular vollständig ausgefüllt
if(!check_empty(document.emailformular.realname.value))
{
feldkontrolle = false;
ausgabe=false;
neu = nicht.push("Name");
}
if(!check_empty(document.emailformular.strasse.value))
{
feldkontrolle = false;
ausgabe=false;
neu = nicht.push("Starße");
}
//Leere Felder Ausgeben
if(ausgabe==false)
{
alert(fehler+"Bitte füllen Sie die felder jetzt aus");
}
return feldkontrolle;
}
//überprüft des Textfeld auf eine eingabe
function check_empty(eingabe)
{
return (eingabe.length > 0); // gibt false zurück wenn leer
}
hi,
var nicht=new Array("Folgende Felde müssen ausgefüllt werden:");
var fehler = nicht.join(",\n");
hier wendest du also die methode join() auf die bisher im array nicht vorhandenen elemente an - da ist aber erst eins drin.
weitere elemente fügst du diesem array ja erst in deiner funktion emailkontrolle() hinzu.
_nachdem_ dies geschehen ist, must du join() anwenden, damit es die _aktuellen_ inhalte des arrays bearbeitet.
gruss,
wahsaga
hi,
hier wendest du also die methode join() auf die bisher im array nicht vorhandenen elemente an - da ist aber erst eins drin.
hu, das liest sich etwas komisch ...
hier wendest du also die methode join() auf die bisher im array namens "nicht" vorhandenen elemente an [...]
klingt etwas eindeutiger ;-)
gruss,
wahsaga
Hi,
super das war genau mein Fehler.
was man nicht alles mal übersieht wenn man da alleine vorsitzt.
Also vielen Dank
und noch ein schönes Wochenende
MFG
Mr.Miyagi
Hi Leute ich habe noch ein kleines Problem
Wenn beim ersten Versuch das Formular abzusenden, es nicht ausgefüllt würde kommt die Fehlermeldung so wie es sein soll.
Werden dann brav alle Felder ausgefüllt und erneut auf Absenden geklickt, dann kommt ein leeres Alert Fenster, erst nach einen reload der Seite kann das Formular abgesendet werden.
Wie kann dieses Problem gelöst werde ?
Der JS Code:
var feldkontrolle=true;
var ausgabe=true;
var nicht=new Array();
function emailkontrolle()
{
//loescht alle eintraege in dem Array nicht
if(nicht.length!=0)
{
for(var i=0;i=nicht.length;i++)
{
nicht.pop();
}
}
//Kontrolle Formular vollstaendig ausgefuellt ist
if(!check_empty(document.emailformular.realname.value))
{
feldkontrolle = false;
ausgabe=false;
neu = nicht.push("-->Name");
}
if(!check_empty(document.emailformular.strasse.value))
{
feldkontrolle = false;
ausgabe=false;
neu = nicht.push("-->Starße");
}
// Erzeugen des Strings fuer Fehler ausgabe
var fehler = nicht.join("\n");
//Leere Felder Ausgeben
if(ausgabe==false)
{
alert("Folgende Felde müssen ausgefüllt werden:\n\n"+fehler+"\n \n Bitte füllen Sie die felder jetzt aus");
}
return feldkontrolle;
}
//ueberprueft des Textfeld auf eine eingabe
function check_empty(eingabe)
{
return (eingabe.length > 0); // gibt false zurueck wenn leer
}
Hallo Mr.Miyagi,
//loescht alle eintraege in dem Array nicht
for(var i=0;i=nicht.length;i++)
Muss heißen:
for(var i=0;i<nicht.length;i++)
//Leere Felder Ausgeben
if(ausgabe==false)
{
alert("Folgende Felde müssen ausgefüllt werden:\n\n"+fehler+"\n \n Bitte füllen Sie die felder jetzt aus");
}
Hier solltest Du "ausgabe" wieder auf true setzen.
Grüße
Andreas
Hi Andreas,
//loescht alle eintraege in dem Array nicht
for(var i=0;i<nicht.length;i++)
Dieses muß wie folgt aussehen, ansonsten bleibt das erste Element mit dem Index[0] im Array stehen und wird bei der nächsten fehler Meldung mit Ausgegeben.
//loescht alle eintraege in dem Array nicht
for(var i=0;i<=nicht.length;i++)
Also ich bedanke mich noch mal, hätte da wahrscheinlich noch Stunden vor Gesäßen und so kann ich in Ruhe mein Bier genießen.
In dem Sinne Prost und noch einen schönen Abend.
Mr.Miyagi