Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Alle Fehler in einem Fenster ausgeben.





Frage

Hallo, ich hab folgendes Problemchen: Habe ein Fragebogen und wenn die Felder nciht ausgefüllt sind, soll der User mit einem javascript - alert drauf hingewiesen werde. Das klappt ja auch, aber für jedes Feld springt EIN einzelnes alert -Fenster auf . Ich möchte allerdings, daß alle Fehler auf einmal in EINEM Alert-fenster ausgegeben werden. BSP: Wenn der User auf den Absendebutton geht, ohne etwas im Formular auszufüllen, sollte ihm folgendes Alertfenster aufpoppen: - Es fehlt die Telefonnummer. - Es fehlt der Name. hier die die korrektur.js [code]<!-- function test() { if(document.formular.name.value == "") { alert ("Es fehlt der Name!"); return false; } if(document.formular.telefon.value) == "") { alert ("Es fehlt die Telefonnummer!"); return false; } else return true; } //[/code] Hat jemand eine Idee, wie man das macht? Ich habs schon mit einem allumschliessenden alert probiert, klappte aber nciht. Freu ich auf Eure Ideen und Hilfe Mel

Antwort 1 von Toadie

Gestalte die Abfragen so, dass eine Variable mit den Texten gefüllt wird wenn sie zutreffen. Am Ende gibst du dann die Variable aus.

Antwort 2 von rfb

function test() 
{ 
var antwort="";

if(document.formular.name.value == "") 
{ 
antwort+="Es fehlt der Name!\n"; 
} 

if(document.formular.telefon.value) == "") 
{ 
antwort+="Es fehlt die Telefonnummer!\n"); 
} 

if (antwort=="") return true; 
else {
alert(antwort);
return false;
}
}


Antwort 3 von Mel

aha,

geniale Lösungen . Super.

Vielen Dank , ich werds gleich ausprobieren.

Viele Grüsse
Mel

Antwort 4 von Mel

Klappt super. Vielen Dank.

Wie kann ich denn nun noch sagen, daß der Cursor nach einer Fehlermeldung zu dem Feld springt, daß noch fehlt?

Ich habs schon probiert, aber dass stimmt ganz und gar nicht...
Habt ihr noch einen Tipp?


function test()
{
var antwort="";

if(document.formular.name.value == "")
{
antwort+="Es fehlt der Name!\n";
}

if(document.formular.telefon.value) == "")
{
antwort+="Es fehlt die Telefonnummer!\n");
}

if (antwort=="") return true;
else {
alert(antwort);

   if (document.formular.name.value=="")
   document.formular.name.focus();
   if (document.formular.telefon.value=="")
   document.formular. telefon.focus();

return false;
}
} 


Vielen Dank
Mel

Antwort 5 von rfb

function test() 
{ 
var antwort=""; 

if(document.formular.name.value == "") 
{ 
antwort+="Es fehlt der Name!\n"; 
document.formular.name.focus(); 
} 

if(document.formular.telefon.value) == "") 
{ 
antwort+="Es fehlt die Telefonnummer!\n"); 
document.formular.telefon.focus(); 
} 

if (antwort=="") return true; 
else { 
alert(antwort); 
return false; 
} 
}


ich weiß nicht weshalb du das nochmals in eine Abfrage gepackt hast und die dann mitten in die Antwort-Ausgabe gesteckt hast.


Zitat:
Ich habs schon probiert, aber dass stimmt ganz und gar nicht.
Wenn du schon angibst, dass irgendetwas nicht klappt, wären ausführliche Fehlerbeschreibungen sinnvoll.

Antwort 6 von rfb

vielleicht mal generell ein Tipp zur selbständigen JS-Fehlersuche.

Starte die fehlerhafte Seite im Firefox und schau dir die sehr ausführliche Fehlerbeschreibung an im Menü
Extras/JavaScript-Konsole


Antwort 7 von Mel

Ah super,

ja vielen Dank.
Natürlich werd ich in Zukunft eine volle Fehlerbeschreibung geben, hatte ich leider in diesem Fall vergessen.

Super vielen Dank auch für den Tipp der Javscriptkonsole. Das sollte schon einiges weiterhelfen.

LG und ein netten Wochenendanfang
Mel

Antwort 8 von Mel

Hallo,

hier noch einmal ein Feedback.

Vielen Dank es funktioniert einwandfrei.
Außer dass der Blinker nicht beim erst freigelassenen sondern beim letzten freigelassenen Feld aufblinkt, klappt es einwandfrei.

Aber ich glaub, ich hab jetzt schon genug mit diesem Thema genervt und frag jetzt lieber nicht noch einmal nach, ob es eine Möglichkeit gibt, dass der Blinker auf das erste freigelassene Feld springt.

Vielen Dank noch einmal und LG
Mel

Antwort 9 von rfb

function test() 
{ 
var antwort=""; 

if(document.formular.telefon.value) == "") 
{ 
antwort="Es fehlt die Telefonnummer!\n"+antwort; 
document.formular.telefon.focus(); 
} 

if(document.formular.name.value == "") 
{ 
antwort="Es fehlt der Name!\n"+antwort; 
document.formular.name.focus(); 
} 

if (antwort=="") return true; 
else { 
alert(antwort); 
return false; 
} 
}

(eigentlich hab ich auf die Frage schon gewartet ;-)

Der Trick besteht darin, die Formularfelder von unten nach oben abzufragen, aber den Antworttext trotzdem in der richtigen Reihenfolge zu ergänzen, also so dass die neue Fehlermeldung vor den bestehenden Text gehängt wird.

Antwort 10 von Mel

Zitat:
(eigentlich hab ich auf die Frage schon gewartet ;-)


Gott sei Dank, dann muss ich nicht allzu schlechtes Gewissen haben ;-)

Ja, ich werds dann gleich mal ausprobieren und bin sicher dass dann der alert endlich wie gewünscht aupoppt und der Zeiger dahin springt, wo er hinsoll.

Super super vielen Dank
und ein nettes WE

Gruss Mel

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: