Hans-Peter Rieger: Pflichtfelder im Formular aktivieren??

Beitrag lesen

Hallo,

wie kann ich in meinem Formular Pflichtfelder einfügen, z.B.:Name Adresse u.s.w..Muss ich die mail.htt ändern oder reicht es wenn ich ein java-script in den Quelltext einfüge und wo bekomme ich dann so eines her, b.z.w. wie sieht es aus!?

wäre für jede Hilfe dankbar

Mfg Michel

Hallo Michael,

den Begriff der "Pflichteingabefelder" gibt es weder in HTML, noch in JavaScript noch sonst wo in der Web-Technologie. Wenn Du in einem Formular Feldern mit bestimmten Funktionen versehen willst (der Art, dass sie das Meckern anfangen, wenn sie bei/nach einem Submit noch nicht bzw. falsch ausgefüllt sind, ist das eine Funktionalität, die Du von Grund auf selber programmieren mußt. Natürlich haben das auch schon Leute vor Dir gemacht, aber bevor Du Dir Beispiele ansiehst, solltest Du zunächst wissen, was ganz genau Du eigentlich haben möchtest.

Grundsätzlich stehen Dir dann zwei Möglichkeiten offen: Eine Client-seitige Überprüfung der Eingaben (getätigt oder nicht), d. h. beim Submit des Formulars pasiert das Submit nicht sofort, sondern durchläuft erst eine JavaScript-Funktion, die die einzelnen Eingaben  (so genau wie Du eben willst) überprüft. Vorteil: Relativ einfach zu machen. Nachteil: Es muß JavaScript bei Deinem Besucher aktiviert sein, sonst gibt es keine Pflichteingabefelder. Möglichkeit zwei: Eine serverseitige Überprüfung der Eingaben. Das Formular wird abgeschickt und ein Script auf dem Web-Server überprüft die Eingaben, ähnlich wie das JavaScript im ersten Beispiel. Vorteil: Der Besucher kann an Browser und Einstellungen haben was er will, weil die Überprüfung nicht auf seiner Maschine abläuft. Nachteil: Du mußt eine serverseitige Technologie verwenden (PHP, ASP) und die muß Dein Provider unterstützen. Außerdem gehen da einige Seiten mehr über das Internet, weil Eingabe und Übrprüfung nicht auf der gleichen Maschine läuft.

Nun kannst Du es Dir aussuchen.

Es folgt eine funktionsfähige JavaScript Funktion (Methode der ersten Art), wie ich sie vor einiger Zeit mal verwendet habe. Ich kopiere das hier einfach mal unkommentiert rein. Wenn Du Verständnisprobleme hast, mußt Du halt nachfragen. Die Funktion wird mit dem Abschicken eines Formulars aufgerufen:

function fktFormSubmit()
{  bErrorFound = false;
   if (document.frmNewEntry.inpName.value == "")
   {  bErrorFound = true;
      document.frmNewEntry.inpName.style.background = "#FFAAAA";
      alert ("Bitte geben Sie Ihren Namen ein.\n\n"        +
             "Anonyme Beiträge sind in diesem\n"           +
             "Forum nicht erwünscht.");
      document.frmNewEntry.inpName.style.background = "#FFFFFF";
   }
   if (document.frmNewEntry.inpSparte.value == "")
   {   bErrorFound = true;
       document.frmNewEntry.inpSparte.style.background = "#FFAAAA";
       alert ("Bitte geben Sie eine Sparte ein\n\n"        +
              "oder wählen Sie 'ACB allgemein',\n"         +
              "wenn sich Ihre Nachricht keiner\n"          +
              "bestimmten Sparte zuordnen läßt");
       document.frmNewEntry.inpSparte.style.background = "#FFFFFF";
   }
   if (document.frmNewEntry.inpSubject.value == "")
   {  bErrorFound = true;
      document.frmNewEntry.inpSubject.style.background = "#FFAAAA";
      alert ("Bitte geben Sie ein Thema ein.\n\n"          +
             "Das Thema erscheint in der Übersicht\n"      +
             "im oberen Teil des Forums und dient\n"       +
             "zur Anwahl Ihres Beitrages");
      document.frmNewEntry.inpSubject.style.background = "#FFFFFF";
   }
   if (document.frmNewEntry.inpMessage.value == "")
   {  bErrorFound = true;
      document.frmNewEntry.inpMessage.style.background = "#FFAAAA";
      alert ("Bitte geben Sie Ihre Nachricht ein.\n\n"     +
             "Ohne Nachricht ist dieser Eintrag\n"         +
             "ziemlich überflüssig.");
      document.frmNewEntry.inpMessage.style.background = "#FFFFFF";
   }
   if (bErrorFound == false)
   {  document.frmNewEntry.submit();
   }
}

Gruß
Hans-Peter