Michel: Pflichtfelder im Formular aktivieren??

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

  1. 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

    1. Hallo Hans-Peter,

      erstmal danke das du mir so ausführlich geschrieben hast.

      Ich möchte die erste Variante, das klingt ganz gut, weil es für meine Kenntnisse einfacher ist etwas in den HTML-Quelltext einzufügen.Aber wie hoch ist den die Quote, das irgendwelche Besucher kein Java auf ihrem PC haben?
      Ist es nicht bei Windows 95/98/XT/NT....oder anderen Systemen automatisch schon dabei?
      *Hmmm*...ich denke ich werde deine erste Variante einmal ausprobieren!

      So,geh'n wir mal einfach vor.Nehmen wir mal an ich möchte nur das Feld "Name" als Pflichtfeld.
      Reicht es dann wenn ich es so einfüge:

      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";}

      Wo muss ich es im Quelltext platzieren, etwa unter den Form Action, einfach nach dem head, am Schluss oder ist das egal?

      danke
      Michel

      1. Hi Michel,

        Ich möchte die erste Variante, das klingt ganz gut, weil es für meine Kenntnisse einfacher ist etwas in den HTML-Quelltext einzufügen.Aber wie hoch ist den die Quote, das irgendwelche Besucher kein Java auf ihrem PC haben?

        Sooo, schlecht ist die erste Variante ja auch nicht. Zum Erfahrung sammeln reicht es allemal. Zwischen Java und JavaScript ist übrigens ein himmelweiter Unterschied. Das darf man nicht durcheinander bringen. Die Namen klingen zwar ähnlich, aber die Unterschiede sind gewaltig. Wir reden hier momentan nur über JavaScript.

        Ist es nicht bei Windows 95/98/XT/NT....oder anderen Systemen automatisch schon dabei?

        Wenn ich jetzt sage, dass das eigentlich gar kein Problem ist, kriege ich von den anderen Cracks in diesem Forum Mecker. JavaScript-Code zu verstehen und auszuführen ist eine Eigenschaft des Internet-Browsers (Explorer, Navigator, Opera, Mozilla, etc.) das ist keine Eigenschaft des Betriebssystems. "Drin" (im Browser) ist es schon. Und es ist in der Regel nach der Installation auch auch aktiv. Die allermeisten Gelegenheits-Surfer verstellen an ihrem Browser jahrein, jahraus überhaupt nichts, und so führt ihr Browser JavaScript aus, ohne dass sie es merken. Manche Leute mögen aber JavaScript nicht. Sei es weil die HTML-Puristen sind und ihnen JavaScript zu viel Dynamik in Leben bringt, sei es, weil man mit Script-Code auch wirklich üble Dinge machen kann (na, vielleicht nicht gerade mit JavaScript, aber mit VB-Script auf jeden Fall) und sie deshalb sicherheitshalber JavaScript deaktivieren. Es hat sich als goldener Kompromiß eingebürgert, keine elementaren Informationen / Funktionen _nur_ über JavaScript bereitzustellen, sondern mindestens auch mit reinem HTML. Aber die Überprüfung eines Eingabefeldes ist nicht wirklich lebensnotwendig. Du mußt nur darauf achten, dass Dein Formular auch abgeschickt wird, wenn JavaScript nicht aktiviert ist. Und: Das ist in meinem Beispiel nicht der Fall gewesen!!

        *Hmmm*...ich denke ich werde deine erste Variante einmal ausprobieren!

        Jo, tu´ das !

        So,geh'n wir mal einfach vor.Nehmen wir mal an ich möchte nur das Feld "Name" als Pflichtfeld.

        Reicht es dann wenn ich es so einfüge:

        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";}

        JavaScript ist zwar einfach zu erlernen, aber ganz blauäugig darf man auch nicht rangehen, will man nicht ewig Fehler suchen. Ich empfehle sehr, dass Du Dir ein paar Artikel in SELFHTML zum Thema JavaScript durchließt.

        Wo muss ich es im Quelltext platzieren, etwa unter den Form Action, einfach nach dem head, am Schluss oder ist das egal?

        JavaScript Funktionen setzt man normalerweise in den Head-Bereich des HTML-Files und ruft sie aus dem Body-Bereich auf.

        Die zwei Zeilen, in denen der Zellen-Background während der alert-Meldung farblich verändert wird, ist nur Schnickschnack. Die kannst Du getrost streichen. Wichtiger ist, dass die Funktion als Solche erhalten bleibt. In dem obigen Fragment fehlen einige schließende geschweifte Klammern. Und dann ist es natürlich wichtig, dass die Funktion nicht nur eine Fehlermeldung rauswirft, sondern auch das Abschicken des Formulars verhindert. Ich habe als Abschicke-Button keinen Submit-Button verwendet, sondern einen normalen Klick-Button. Wenn kein Fehler aufgetreten ist hat die Zeile document.frmNewEntry.submit(); das Formular abgeschickt. Wenn ein Fehler da war, konnte der Besucher sein Formular korrigieren, ohne dass es abgeschickt wurde. Aber Du siehst das Problem: Bei deaktiviertem JavaScript hat er das Formular _nie_ abgeschickt bekommen. Jetzt kommt Deine Kreativität ins Spiel die Du unbedingt brauchst um erfolgreiche Web-Seiten zu erstellen. Das Beispiel sollte so geändert werden, dass es ohne JavaScript zwar keine Überprüfung mehr macht, der Besucher aber trotzdem das Formular abschicken kann (auch wenn es fehlerhaft ist).

        Ciao
        Hans-Peter

        1. Ups,

          danke für die Mail. Aber wenn wir ein Thema im Forum angefangen haben und nichts gravierendes dagegen spricht, sollten wir es hier auch beenden. Das ist zwar nicht gerade Hi-Tech JavaScript, was wir da besprechen, aber vielleicht interessiert sich ja sonst noch jemand dafür oder es kann mich jemand verbessern, wenn ich Mist schreibe.

          Ciao
          Hans-Peter

          1. Hallo Hans-Peter,

            ich möchte ja nicht java lernen, denn die Zeit habe ich nicht.Ich will nur wissen wie ich ein funktionsfähiges Script in meinen Quelltext einsetze.
            Ich habe mich für dein Script entschieden und will es in mein Quelltext setzen und die Felder wie "Vorname", "Nachname" und "Telefonnummer" in das Script einfügen, das ist alles was ich wissen möchte.
            Also, ich setze dein Script ein und ersetze die Felder wie "Vorname", "Nachname", Telefonnummer" dann setze ich den
            onSubmit="return chkFormular()" in den Form tag...*hmmm* aber was kommt dann vor den Body?

            Michel