Kontaktformular mit Javascript

  • Ein Frohes Neues Jahr wünsche ich euch allen :)

    mit diesem Script versuche ich Pflichtfelder zu generieren, aber leider klappt dies nicht wie gewünscht. Das Formular wird auch leer abgeschickt. Kann mir vielleicht jemand sagen, woran das liegen könnte, bitte?

    Vielen Dank

    visitor

    <!-- Beginn Kontaktformular -->
    <form action="http://www.domain.com/cgi-bin/mailer.pl" method="POST" enctype="multipart/form-data" onsubmit="return chkFormular()">

    input type="hidden" name="recipient" value=spicemasta@gmx.de[/EMAIL]>

    <input type="hidden" name="redirect" value="http://www.domain.com/index.html/danke_mail.html">

    <script language="JavaScript" type="text/javascript">

    <!-- Begin
    function textCounter(Mitteilung, countfield, maxlimit) {
    if (Mitteilung.value.length > maxlimit) // if too long...trim it!
    {
    alert("Bitte beschränken Sie sich bei Ihrer Mitteilung auf 1000 Zeichen!");
    Mitteilung.value = Mitteilung.value.substring(0, maxlimit);}
    // otherwise, update 'characters left' counter
    else
    countfield.value = maxlimit -- Mitteilung.value.length;
    }
    // End -->

    <input type="hidden" name="pflicht" value="Vorname, Nachname, Telefon, E&nbsp;Mail,">
    function chkFormular () {

    if (Vorname.value == "") {
    alert("Feld Vorname muss erfasst werden!");
    return false};

    if (Nachname.value == "") {
    alert("Feld Nachname muss erfasst werden!");
    return false};

    if (Telefon.value == "") {
    alert("Feld Telefon Nummer muss erfasst werden!");
    return false};

    if (Email.value == "") {
    alert("Feld E-mail muss erfasst werden!");
    return false};

    if ((Email.value) && (Email.value.indexOf("@") == -1 || Email.value.indexOf(".") == -1)) {
    alert("Feld E-mail muss erfasst werden!");
    return false};
    </SCRIPT>

    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=605>
    <td valign="top">
    <table width="605px" cellpadding="3" cellspacing="3" border="0">
    <tr>
    <td width="50">Vorname</td>
    <td width="50">Nachname</td>
    </tr>

    <tr>
    <td><INPUT TYPE="text" NAME="Vorname" SIZE="30" MAXLENGTH="30" VALUE=""></td>
    <td><INPUT TYPE="text" NAME="Nachname" SIZE="30" MAXLENGTH="30" VALUE=""></td>
    </tr>

    <tr>
    <td width="30">Telefon</td>
    <td width="30">E&nbsp;Mail</td>
    </tr>

    <tr>
    <td><INPUT TYPE="text" NAME="Telefon" SIZE="30" MAXLENGTH="30" VALUE=""></td>
    <td><INPUT TYPE="text" NAME="Email" SIZE="30" MAXLENGTH="30" VALUE=""></td>
    </tr>
    </table>
    <br>
    <br>

    <table>
    <tr><td><INPUT TYPE="radio" NAME="Bereich" VALUE="Fahrrad">Fahrrad</td></tr>
    <tr><td><INPUT TYPE="radio" NAME="Bereich" VALUE="Motorrad">Motorrad</td></tr>
    <tr><td><INPUT TYPE="radio" NAME="Bereich" VALUE="Auto">Auto</td></tr>
    </tr>
    </table>
    <br>
    <br>

    <table>
    <tr>
    <td width="605px"><textarea name="Mitteilung" cols="89" rows="7" wrap="soft" style="width:500px" onKeyDown="textCounter(this.form.Mitteilung,this.length,1000);" onKeyUp="textCounter(this.form.Mitteilung,this.form.length,1000);"></textarea><br>
    <input readonly type=hidden name=Zeichen size=3 maxlength=3 value="1000"></td>
    </tr>
    </table>
    <br>

    <table>
    <tr>
    <td>

    <input type="submit" VALUE="Formular senden">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="reset" VALUE="Formular l&ouml;schen">
    </td>
    </tr>
    </table>
    </form>

    </body>
    </html>

  • also der erste quatsch der mir direkt ins auge fällt is des inputfeld mitten im javascript.
    dann wäre es recht wünschenswert, wenn du hier beim posting codetags für deinen code benutzt.
    mach dir mal nen "plan" was du in welcher reihenfolge machen möchtest und geh des ding systematisch durch..

    hier mal der code, wie er aussehen sollte, damit keine fehler beim öffnen auftauchen

    das javascript prüfe ich erst wenn du nen "plan" hast und hier postest, wie du das ganze lösen willst.

    abgesehen davon solltest du von anfang an auf vailden code achten

    3 Mal editiert, zuletzt von synaptic (2. Januar 2009 um 10:49) aus folgendem Grund: nen rechtschreibfehler verbessert

  • Hi Synaptic

    Ich hab's jetzt mal etwas angepasst... funzt aber immer noch nicht!

    Einmal editiert, zuletzt von synaptic (1. Januar 2009 um 21:48) aus folgendem Grund: für bessere lesbarkeit codetags eingebaut

  • beschreibe doch mal sowas wie den ablauf und welches ergebnis du haben willst..
    pflichtfelder kennzeichnet man händisch und man prüft lediglich die eingabe onsubmit.
    bei der textarea kann ich nachvollziehen was du willst, aber was möchtest du wirklich machen, wenn die eingaben falsch sind?
    nen alert? visuelle kennzeichnung der felder??

    edit ich hab grad mal die muße gefunden mir des anzusehen....
    wieviel ahnung hast du von html?
    wieviel ahnung hast du von javascript?
    wieviel ahnung hast du von programmierstrukturen allgemein?
    du kannst meines erachtens nach nichma die grundlagen, die nötig wären!
    und niemand möchte einen prompt-dialog, um seine eingaben zu ändern/verbessern
    letztlich befreit dich übrigens die javascript-variante nicht davon alles nochmal serverseitig zu überprüfen!

    und.. hast du dir des mal in einem browser angesehen, was du da verzapft hast?


    PS: benutze bitte die codetags, damit dein code nicht als normaler text zu sehen ist.
    ich hab es jetzt oben mal für dich nachträglich gemacht

    Einmal editiert, zuletzt von synaptic (2. Januar 2009 um 00:47) aus folgendem Grund: beitrag erweitert

  • Hi Synaptic

    Ja, ja... immer direkt in die Fresse! Aber Du hast Recht, meine Kenntnisse sind bescheiden. Wie soll denn DEINER Meinung nach dem Absender des Kontaktformulars mitgeteilt werden, dass gewisse Felder nicht abgefüllt wurden, hm? Siehe hierzu auch Deinen Kommentar...

    "und niemand möchte einen prompt-dialog, um seine eingaben zu ändern/verbessern"

    visitor

  • naja jeder nimmt kritik so auf und an, wie er es grad will...
    nur weil ein gegenüber nicht grad honig aus der tasche zieht, ist die situatuion noch lange nicht angespannt und man bekommt noch lange keinen

    Zitat von visitor

    in die Fresse

    deswegen.
    wie soll ich (oder jemand anders) dir helfen können, wenn dein wissensstand nicht eindeutig ist?
    und wenn du dir mal ein kontaktformular ansiehst, wirste feststellen, dass die ALLE keine prompts nutzen um die nötigen inputs von den usern zu bekommen....

    und mal ne kleine erklärung wieso mein ton etwas rauher war:
    du hattest den doctype doppelt, hab des doppelte beim nachtragen der codetags mal wegeditiert..
    du hast öffnende tag-klammern vergessen, diverse attribute haben keine anführungszeichen, dann haste ne html-entity im namen einer funktion, dann fragste mit ner if-bedingung nur nach käse, statt danach ob käse aus milch ist...
    will sagen eine if-bedingung hat folgendes muster:

    Code
    if(true oder false){
    mach was
    }

    und net

    Code
    if(auto){
    fahren
    }

    bei ner while-schleife is des übrigens nich anders mit dem true oder false...
    die untere variable "auto" funzt nur wenn darin ein true oder false steht!


    edit: aber damit du nicht leer ausgehst und weil es ja auch einfacher ist pampig zu antworten, statt kritik anzunehmen bekommste jetzt von mir ne komplettlösung...
    bisher kommt lediglich ne meldung dass des formular abgeschickt wurde, wirst bestimmt in der lage dazu sein die entsprechenden dinge zu ändern!

    8 Mal editiert, zuletzt von synaptic (2. Januar 2009 um 15:43) aus folgendem Grund: code gegen xhtml1.0-validen code getauscht

  • bin ich blöd, oder was? Bis anhin hat das Versenden und der Erhalt der Informationen im Kontaktformular per e-mail wunderbar geklappt...

    [CODE<form action='http://www.domain.com/cgi-bin.pl' method='POST' onsubmit='return checkInputs();'>
    <input type='hidden' name='recipient' id='recipient' value='spicemasta@gmx.de'/>
    <input type='hidden' name='redirect' id='redirect' value='http://www.domain.com/thanks.html'/>][/CODE]

    ...die Danke-mail erscheint weiterhin, aber ich kriege die Informationen plötzlich nicht mehr? :confused:

    visitor

  • könnte an den inhalten der cgi-file liegen.. wenn die nen feld mit name ausliest und dein feld heist nname, könnte es schon krachen.. verzichte doch einfach auch diese cgi-scheisse und benutz den phpmailer.
    solltest du keinen php-fähigen webspace haben schau bei bplaced.net, ohost.de oder pythalhost.de