Stelo: Formular per JS überprüfen und dann abschicken

Hallo ... ich möchte ein Formular mit JavaScript überprüfen, d.h. kontrollieren, ob alle Felder ausgefüllt werden und wenn das der Fall ist, es dann abzuschicken.
Mein JavaScript Teil sieht so aus:

function check () {
 if (document.kontakt.name.value == '') {
          alert('Bitte einen Namen eingeben.');
             return false;
            }
         if (document.kontakt.mail.value == '') {
          alert('Bitte eine E-Mail-Adresse eingeben.');
             return false;
            }
         if (document.kontakt.nachricht.value == '') {
          alert('Bitte eine Nachricht eingeben.');
             return false;
            }
         return true;
}

Funktioniert auch, doch wenn sich dann das Mail-Programm öffnet steht in der Mail:
name=Steff&mail=bla%40web.de&grund=frage&nachricht=Warum+geht+das+nicht%3F&Abschicken=abschicken

Wie kann ich denn dafür Sorgen, dass die Mail mit richtigen Inhalt gefüllt wird?
Und wie das mit PHP gehen würde ist mir bewusst, aber ich muss leider mit JS arbeiten.

  1. Hi,

    Funktioniert auch, doch wenn sich dann das Mail-Programm öffnet

    Du benutzt ein mailto-Formular. Das ist ein Fehler. Diese Formulare, genauer gesagt das anschließende Verhalten eines *eventuell* vorhandenen und *eventuell* dadurch verwendeten Mail-Clients, sind unkontrollierbar. Nutze einen serverseitigen Formmailer.

    Und wie das mit PHP gehen würde ist mir bewusst, aber ich muss leider mit JS arbeiten.

    JavaScript hat zu exakt 0% mit der Problematik zu tun. Du könntest es möglicherweise verwenden, um Dir noch zusätzlich zu schaden; nutzen kann es jedoch nicht. Das von Dir gezeigte Script führt zu keinerlei Veränderung.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Funktioniert auch, doch wenn sich dann das Mail-Programm öffnet

      Du benutzt ein mailto-Formular. Das ist ein Fehler. Diese Formulare, genauer gesagt das anschließende Verhalten eines *eventuell* vorhandenen und *eventuell* dadurch verwendeten Mail-Clients, sind unkontrollierbar. Nutze einen serverseitigen Formmailer.

      Würde ich ja gern! ;)
      Leider steht in meiner Aufgabenstellung "mindestens 2 unterschiedliche Formularobjekte, die mittels JavaScript ausgewertet und verarbeitet werden."
      Von daher kann ich leider nicht mit PHP & mail() o.ä. arbeiten, dass ist ja mein Problem.

      Gibt es keine Möglichkeit, mit JavaScript ein Formular auszuwerten und dieses dann zu verschicken?!

      1. Hi,

        Leider steht in meiner Aufgabenstellung "mindestens 2 unterschiedliche Formularobjekte, die mittels JavaScript ausgewertet und verarbeitet werden."

        dann ist die Frage, was mit "verarbeitet" gemeint ist. Ein Mail-Versand, *falls* er denn klappt, ist nur bedingt eine Verarbeitung, und ganz bestimmt keine mit JavaScript.

        Gibt es keine Möglichkeit, mit JavaScript ein Formular auszuwerten und dieses dann zu verschicken?!

        Warum verschicken? Du sollst es verarbeiten.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    function check () {
    if (document.kontakt.name.value == '') {

    der input-Elementname scheint mir aber unglücklich gewählt:

    document.kontakt.name wäre doch "kontakt", der Formularname - oder ?

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·
    1. der input-Elementname scheint mir aber unglücklich gewählt:

      document.kontakt.name wäre doch "kontakt", der Formularname - oder ?

      Die Frage versteh ich nicht ganz?!
      "kontakt" heißt mein Formular, richtig und "name" heißt ein input Feld, in den man den Namen eingibt?!

      1. Hallo,

        der input-Elementname scheint mir aber unglücklich gewählt:

        document.kontakt.name wäre doch "kontakt", der Formularname - oder ?
        Die Frage versteh ich nicht ganz?!
        "kontakt" heißt mein Formular, richtig und "name" heißt ein input Feld, in den man den Namen eingibt?!

        ich hatte da ein Problem gesehen, aber schein keines zu sein.

        alert( document.kontakt.name); // ergibt: [object HTMLInputElement]

        ich hatte eben den Formularnamen erwartet.

        Gruß plan_B

        --
             *®*´¯`·.¸¸.·
        1. Hi,

          ich hatte da ein Problem gesehen, aber schein keines zu sein.

          doch, gibt es. Aufgrund der Schreibweise ist nicht klar, ob ein Eingabefeld namens "name" gemeint ist, oder die gleichnamige Formular-Eigenschaft. Besser wäre eine Schreibweise mittels elements-Collection. Oder, falls möglich, die Wahl eines anderen Namens für das Eingabefeld.

          ich hatte eben den Formularnamen erwartet.

          Tja. Was erwartest Du bei document.kontakt.action?

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes