1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Mailform Feldabfrage - eines wird nicht gefragt :-/

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von wba, 02.12.05.

  1. wba

    wba Gast

    Mogööhn...:(o_O

    nu brüte ich schon Stunden um Stunden, finde aber den Fähler nicht. Vielleicht sieht jemand, warum das Feld "Nachricht" nicht abgefragt wird??? Bei alle anderen Feldern funktioniert die Abfrage, ob was drinsteht, nur bei dem Nachrichtfeld nicht. Habe es auch schon ohne die CountMax-Funktion versucht, klappt auch nicht... Isch werde waaahnsinnig!! (Ich weiß, mit CSS statt Tabellen, aber das kommt im nächsten Schritt ;)) Wenn jemand den Fähler findet...das wäre gigantisch!

    Hier das JS zur Abfrage:

    function Verif(){
    if (document.eingabe.vorname.value == ""){
    alert("Sie haben doch sicher wenigstens einen Vornamen.")
    document.eingabe.vorname.focus();
    return false;
    }

    else if (document.eingabe.nachname.value == ""){
    alert("Bitte verraten Sie mir auch Ihren Nachnamen.")
    document.eingabe.nachname.focus();
    return false;
    }

    else if (document.eingabe.email.value == ""){
    alert("Bitte geben Sie Ihre e-mail-Adresse ein.")
    document.eingabe.email.focus();
    return false;
    }

    else if (document.eingabe.email.value.indexOf ('@',0) == -1 || document.eingabe.email.value.indexOf ('.',0) == -1){
    alert("Bitte geben Sie eine korrekte e-mail-Adresse ein: name@domain.de")
    document.eingabe.email.select();
    document.eingabe.email.focus();
    return false;
    }

    else if (document.eingabe.betreff.value == ""){
    alert("Betreff: Wodrum gehts denn?")
    document.eingabe.betreff.focus();
    return false;
    }

    else if (document.eingabe.nachricht.value == ""){
    alert("No news are good news? Bitte schreiben Sie doch was...")
    document.eingabe.nachricht.focus();
    return false;
    }


    else
    return true;
    }

    Und hier die Felddefinitionen:

    <form name="eingabe" method="POST" action="kontakt_handler.php" onsubmit="return Verif(this.form)">
    <table style="border-width: 0px; width: 350px" cellpadding="0">
    <tr>
    <td style="width: 100px;" width="90">
    <p class="small">
    Vorname*
    </p>
    </td>
    <td style="width: 250px;" width="320">
    <input class="small" style="width: 220 px;" title="Vorname" type="Text" name="vorname" size="30" maxlength="50">
    </td>
    </tr>
    <tr>
    <td style="width: 100px;" width="90">
    <p class="small">
    Nachname*
    </p>
    </td>
    <td style="width: 250px;" width="320">
    <input class="small" style="width: 220 px;" title="Nachname" type="Text" name="nachname" size="30" maxlength="50">
    </td>
    </tr>
    <tr>
    <td style="width: 100px;" width="90">
    <p class="small">
    Firma
    </p>
    </td>
    <td style="width: 250px;" width="320">
    <input class="small" style="width: 220 px;" title="Firma" type="Text" name="Firma" size="30" maxlength="50">
    </td>
    </tr>
    <tr>
    <td style="width: 100px;" width="90">
    <p class="small">
    Telefon
    </p>
    </td>
    <td style="width: 250px;" width="320">
    <input class="small" style="width: 220 px;" title="Telefon" type="Text" name="Telefon" size="30" maxlength="50">
    </td>
    </tr>
    <tr>
    <td style="width: 100px;" width="90">
    <p class="small">
    e-Mail*
    </p>
    </td>
    <td style="width: 250px;" width="320">
    <input class="small" style="width: 220 px;" title="Ihre E-mail-Adresse" type="Text" name="email" size="30" maxlength="60">
    </td>
    </tr>
    <tr>
    <td style="width: 100px;" width="90">
    <p class="small">
    Betreff*
    </p>
    </td>
    <td style="width: 250px;" width="320">
    <input class="small" style="width: 220 px;" title="Betreff" type="Text" name="betreff" size="30" maxlength="60">
    </td>
    </tr>
    <tr>
    <td style="width: 100px; vertical-align: top" width="90">
    <p class="small">
    Nachricht*
    </p>
    </td>
    <td style="width: 250px;" width="320">

    <script language="JavaScript">
    <!--
    function CountMax()
    {
    var wert,max;
    max = 1500;
    wert = max-document.eingabe.nachricht.value.length;
    if (wert < 0) {
    alert("Sie haben die maximale Zeichenanzahl von " + max + " Buchstaben erreicht!");
    document.eingabe.nachricht.value = document.eingabe.nachricht.value.substring(0,max);
    wert = max-document.eingabe.nachricht.value.length;
    document.eingabe.counter.value = wert;

    } else {
    document.eingabe.counter.value = max - document.eingabe.nachricht.value.length;
    }
    }
    //-->

    </script>
    <textarea class="small" style="width: 300 px;" title="Nachricht" name="nachricht" rows="6" cols="45" onclick="CountMax();" onkeydown="CountMax();" onkeyup="CountMax();" onfocus="CountMax();" onchange="CountMax();">
    </textarea>
    <p class="small">
    <input class="small" style="width: 40 px;" title="Die Nachricht darf max. 1500 Zeichen haben!" type="TEXT" name="counter" value="1500" readonly size="3" maxlength="4">
    Zeichen &uuml;brig.
    </p>
    </td>
    </tr>
    <tr height="30">
    <td style="width: 100 px;" width="90" height="30">
    </td>
    <td style="width: 220 px;" valign="bottom" width="320" height="30">
    <input class="button" type="Submit" name="Send" value="senden">
    &nbsp;&nbsp;<input type="reset" value="l&ouml;schen">
    </td>
    </tr>
    </table>
    </form>

    Edit: habe auch schon versucht, die Abfrage aus dem Form-Tag rauszunehmen und in den Send-Button zu setzen - vergeblich...
     
  2. Ganz einfach:

    Du fragst in der Verif-funktion ab, ob der Wert des Elements "nachricht" im Formular "eingabe" einen Leerwert hat.
    Das Problem daran:
    Das Element "nachricht" ist eine Textarea und diese haben bekannterweise keine value-Eigenschaft.
    Musst du dir was anderes auskaspern.
     
  3. wba

    wba Gast

    Thx, Darklord - aber das Merkwürdige ist, dass das abfragen des Nachricht-Feldes in einem anderen Formular funktioniert!? Mit demselben Script (nur weniger Felder) und auch als Textfeld... *woo is der Kopfkratzsmiley*
     
  4. bluba

    bluba Bismarckapfel

    Dabei seit:
    10.06.04
    Beiträge:
    144
    Hallo wba,
    ich hab Formular und Funktion ausprobiert, klappt wunderbar, ist das Feld Nachricht leer, bekomme ich die Fehlermeldung :) bei allen anderen Feldern natürlich auch.

    Grundsätzlich ist aber die Frage warum Du die Formulardaten mit JavaScript und nicht gleich mit PHP überprüfst, wo es doch eh an eine PHP-Seite gesendet wird??

    Gruss Gregor
     
  5. Wenn er solche Checks macht (ob Felder leer sind), wäre es günstiger, diese direkt bei der Eingabe zu prüfen.
    Das würde schonmal Leute die ein leeres Formular mit 50 Klicks pro Sekunde senden (Übertreibung) abhalten, den Server mit dem Überprüfen zu belasten.

    In das PHP-Skript würde ich dann eine genauere Abfrage, welchen Wert ein Feld haben darf oder wie der zusammengesetzt sein soll (z.B. E-Mail) reinmachen.

    Vermute mal, dass wba das so macht.
     
  6. wba

    wba Gast

    ;) ist mir inzwischen auch aufgegangen, das ganze besser komplett in PHP zu machen. Das Formular hat irgendwie ne Eigendynamik entwickelt, soll jetzt noch mehr Felder enthalten. Trotzdem hat mich verwundert, warum die Abfrage nicht klappt (immer noch nicht :oops:) - Danke trotzdem :-D

    Gruß
    Wolfgang
     
  7. angelone

    angelone Dülmener Rosenapfel

    Dabei seit:
    02.05.04
    Beiträge:
    1.674
  8. wba

    wba Gast

    Danke, angelone, ich mach das ganze neu und mit PHP ;)

    Grüßle
    Wolfgang
     

Diese Seite empfehlen