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 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 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">
<input type="reset" VALUE="Formular löschen">
</td>
</tr>
</table>
</form>
</body>
</html>
Kontaktformular mit Javascript
-
-
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
HTML
Alles anzeigen <html> <!-- Created with the CoffeeCup HTML Editor --> <!-- http://www.coffeecup.com/ --> <!-- Brewed on 01.01.2009 12:24:43 --> <head> <title></title> </head> <body> <!-- 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> <input type="hidden" name="redirect" value="http://www.domain.com/index.html/danke_mail.html"> <input type="hidden" name="pflicht" value="Vorname, Nachname, Telefon, E Mail,"> <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 --> 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 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"> <input type="reset" VALUE="Formular löschen"> </td> </tr> </table> </form> </body> </html>
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
-
Hi Synaptic
Ich hab's jetzt mal etwas angepasst... funzt aber immer noch nicht!
HTML
Alles anzeigen<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de-ch" lang="de-ch"> <head> <title>Kontaktformular</title> <meta name="author"> <meta name="generator" content="SuperHTML 7.0"> <meta name="keywords" content="Fahrräder, Motorräder, Fahrzeuge"> </head> <body> <!-- Beginn Kontaktformular --> <form action="http://www.domain.com/cgi-bin/mailer.pl" method="POST" onSubmit="return prüfen()"> input type="hidden" name="recipient" value=spicemasta@gmx.de> <input type="hidden" name="redirect" value="http://www.domain.com/index.html/danke_mail.html"> <script language="JavaScript"> function prüfen () { var f = document.forms[0] var fehler = "" //enthält die Bezeichnungen der nichtausgefüllten Felder // *** Ueberprüfung auf vollständige Ausfüllung while (f.Firma.value=="") { var firma = prompt("Bitte geben Sie Ihren Firmennamen ein!") (if firma) f.Firma.value = firma } while (f.Vorname.value=="") { var vorname = prompt("Bitte geben Sie Ihren Vornamen ein!") (if vorname) f.Vorname.value = vorname } while (f.Name.value=="") { var name = prompt("Bitte geben Sie Ihren Namen ein!") (if name) f.Name.value = name } while (f.Telefon.value=="") { var telefon = prompt("Bitte geben Sie Ihre Telefon-Nr. ein!") (if telefon) f.Telefon.value = telefon } while (f.Email.value=="") { var email = prompt("Bitte geben Sie Ihre E-Mail Adresse ein!") (if email) f.Email.value = email } if (fehler != "") { var fehlertext = "Die folgenden Felder wurden nicht vollständig ausgefüllt:\n" fehlertext += fehler alert(fehlertext) return false } return true } </script> <!-- Start Content --> <table border="1" cellspacing="0" cellpadding="0" width="605px"> <tr> <td width="605" valign="top"> <table width="605" border="0" cellspacing="0" cellpadding="0"> <br> <br> <tr> <td align="left" valign="top" input type="text">Firma*</td> <td align="left" valign="top" input type="text"> <input type="text" name="Firma" size="9" input type="text" style="width:110px"> </td> <td align="left" valign="top" input type="text">Anrede</td> <td align="left" valign="top" input type="text"> <input type="radio" name="Anrede" value="Frau">Frau <input type="radio" name="Anrede" value="Herr" checked>Herr</td> </tr> <tr> <td align="left" valign="top" input type="text" value="">Vorname*</td> <td align="left" valign="top" input type="text"> <input type="text" name="Vorname" size="9" input type="text" style="width:110px"> </td> <td align="left" valign="top" input type="text" value="">Name*</td> <td align="left" valign="top" input type="text"> <input type="text" name="Nachname" size="9" input type="text" style="width:110px"> </td> </tr> <tr> <td align="left" valign="top" input type="text" value="">Strasse</td> <td align="left" valign="top" input type="text"> <input type="text" name="Strasse" size="9" input type="text" style="width:110px"> </td> <td align="left" valign="top" input type="text" value="">Nr.</td> <td align="left" valign="top" input type="text"> <input type="text" name="Nr" size="9" input type="text" style="width:110px"> </td> </tr> <tr> <td align="left" valign="top" input type="text" value="">PLZ</td> <td align="left" valign="top" input type="text"> <input type="text" name="PLZ" size="9" input type="text" style="width:110px"> </td> <td align="left" valign="top" input type="text" value="">Ort</td> <td align="left" valign="top" input type="text"> <input type="text" name="Ort" size="9" input type="text" style="width:110px"> </td> </tr> <tr> <td align="left" valign="top" input type="text" value="">Telefon*</td> <td align="left" valign="top" input type="text"> <input type="text" name="Telefon" size="9" input type="text" style="width:110px"> </td> <td align="left" valign="top" input type="text" value="">E-Mail*</td> <td align="left" valign="top" input type="text"> <input type="text" name="mailsrc" size="9" input type="text" style="width:110px"> </td> </tr> <tr> <td>*Pflichtfelder</td> </tr> </table> <br> <br> <table> <tr> <td>Meine Anfrage betrifft folgenden Bereich...</td> </tr> </table> <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="Fahrzeug">Fahrzeug</td></tr> </tr> </table> <br> <table> <tr> <td align="left" valign="top" input type="text">Mitteilung</td> <td colspan="3" align="left" valign="top" input type="text"> <textarea name="Feedback" rows="5" cols="25" input type="text" style="width:450px"></textarea> </td> </tr> </table> <br> <center> <table> <tr> <td><input type="submit" VALUE="Formular senden"> <input type="reset" VALUE="Formular löschen"> </td> </tr> </table> </form> <br> </body> </html>
-
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 -
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 keinenZitat von visitorin 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:und net
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!HTML
Alles anzeigen<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de-ch" lang="de"> <head> <title>Kontaktformular</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> <meta name="keywords" content="Fahrräder, Motorräder, Fahrzeuge" /> <style type="text/css"> *{ margin:0; padding:0; } fieldset{ width:455px; margin:8px auto; padding:8px; background: #ffffff; } .dropdown{ width:145px; } .contab{ width:455px; } .btngrp{ text-align:center; } #nachricht{ width:440px; } .norm{ border:1px solid #7f9db9; } .error{ border:1px solid red; } .droperror{ width:145px; border:1px solid red; } </style> <script type="text/javascript"> /* <![CDATA[ */ function trim(zeichenkette) { return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, ''); } function checkField(){ var field = document.getElementById('nachricht'); field_input = field.value; if(field_input.length > 1000){ field.value = field_input.substr(0, 1000); alert('Sie können maximal 1000 Zeichen schreiben!\nBitte ändern sie ihre Eingaben'); } } function hideErr(){ document.getElementById('errText').innerHTML = ''; } function checkInputs(){ var hidden1 = document.getElementById('recipient'); var hidden2 = document.getElementById('redirect'); var anrede = document.getElementById('salutation'); var firma = document.getElementById('company'); var name = document.getElementById('name'); var vname = document.getElementById('vorname'); var email = document.getElementById('email'); var telefon = document.getElementById('telefon'); var nachricht = document.getElementById('nachricht'); var hidden1_val = trim(hidden1.value); var hidden2_val = trim(hidden2.value); var anrede_val = anrede.selectedIndex; var firma_val = trim(firma.value); var name_val = trim(name.value); var vname_val = trim(vname.value); var email_val = trim(email.value); var telefon_val = trim(telefon.value); var nachricht_val = nachricht.value; if(anrede_val == 0){ anrede.className = 'droperror'; }else{ if(anrede_val == 1){anrede_val = 'Herr'} else{anrede_val = 'Frau'} anrede.className = 'dropdown'; hideErr(); } if(firma_val == ''){ firma.className = 'error'; }else{ firma.className = 'norm'; hideErr(); } if(name_val == ''){ name.className = 'error'; }else{ name.className = 'norm'; hideErr(); } if(vname_val == ''){ vname.className = 'error'; }else{ vname.className = 'norm'; hideErr(vname); } if(email_val == '' | email_val.indexOf('@') == -1 | email_val.indexOf('.') == -1){ email.className = 'error'; }else{ email.className = 'norm'; hideErr(); } if(telefon_val == ''){ telefon.className = 'error'; }else{ telefon.className = 'norm'; hideErr(); } if(nachricht_val == ''){ nachricht.className = 'error'; }else{ nachricht.className = 'norm'; hideErr(); } if(anrede.className == 'droperror' || firma.className == 'error' || name.className == 'error' || vname.className == 'error' || email.className == 'error' || telefon.className == 'error' || nachricht.className == 'error' ){ document.getElementById('errText').innerHTML='Bitte korrigieren sie die rot markierten Felder' return false; } else{ ausgabe = 'recipient: '+ hidden1_val + '\n' + 'redirect : '+ hidden2_val + '\n' + 'firma: '+ firma_val + '\n' + 'anrede: '+ anrede_val + '\n' + 'name: '+ name_val + '\n' + 'vorname: '+ vname_val + '\n' + 'email: '+ email_val + '\n' + 'telefon: '+ telefon_val + '\n' + 'nachricht: '+ nachricht_val + '\n'; alert(ausgabe); } } function resetAll(){ document.getElementById('salutation').className='dropdown'; document.getElementById('company').className='norm'; document.getElementById('name').className='norm'; document.getElementById('vorname').className='norm'; document.getElementById('email').className='norm'; document.getElementById('telefon').className='norm'; document.getElementById('nachricht').className='norm'; } /* ]]> */ </script> </head> <body> <div> <!-- Beginn Kontaktformular --> <form action="javascript:alert('Formular gesendet!!')" 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/index.html/danke_mail.html" /> <div> <fieldset> <legend>Persönliche Daten</legend> <table class="contab"> <tr> <td>Firma:*</td> <td> <input class="norm" type="text" name="company" id="company" value="" /> </td> <td> </td> <td> </td> </tr> <tr> <td>Anrede:</td> <td> <select name="salutation" id="salutation" class="dropdown"> <option>Bitte auswählen</option> <option>Herr</option> <option>Frau</option> </select> </td> <td> </td> <td> </td> </tr> <tr> <td>Name:*</td> <td> <input class="norm" type="text" name="name" id="name" value="" /> </td> <td>Vorname:*</td> <td> <input class="norm" type="text" name="vorname" id="vorname" value="" /> </td> </tr> <tr> <td>E-mail:*</td> <td><input class="norm" type="text" name="email" id="email" value="" /></td> <td> </td> <td> </td> </tr> <tr> <td>Strasse:</td> <td><input class="norm" type="text" name="strasse" id="strasse" value="" /></td> <td>PLZ/Ort:</td> <td><input class="norm" type="text" name="ort" id="ort" value="" /></td> </tr> <tr> <td>Telefon:*</td> <td><input class="norm" type="text" name="telefon" id="telefon" value="" /></td> <td>Fax:</td> <td><input class="norm" type="text" name="fax" id="fax" value="" /></td> </tr> </table> </fieldset> </div> <div class="btngrp"> <fieldset> <legend>Meine Anfrage betrifft folgenden Bereich...</legend> <input name="anfrage" type="radio" value="Fahrzeug" checked="checked" />Fahrzeug <input name="anfrage" type="radio" value="Fahrrad" />Fahrrad <input name="anfrage" type="radio" value="Motorrad" />Motorrad </fieldset> </div> <div> <fieldset> <legend>Ihre Nachricht*</legend> <textarea id="nachricht" name="nachricht" rows="7" cols="4" onkeydown="checkField();"></textarea> </fieldset> </div> <div> <fieldset> <legend></legend> <input style="float:left;" type="reset" value="Löschen" onclick="resetAll();" /> <input style="float:right;" type="submit" value="Absenden" /> </fieldset> <span style="clear:both;"></span> </div> <div> <fieldset> <legend>Wichtig:</legend> Alle mit * gekennzeichneten Felder sind Pflichtfelder<br /> <span id="errText"></span> </fieldset> </div> </form> </div> <br /> </body> </html>
-
Verdammt, so was Geiles hab ich bis jetzt wirklich noch nicht gesehen...! Was willst Du dafür haben?
visitor -
50 euro in die kaffeekasse
is eben doch nen unterschied, ob man sowas als hobby oder beruflich macht...
-
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?
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 -
hast recht gehabt... jetzt klappt's wieder wunderbar!
Danke synaptic