• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Mailform Feldabfrage - eines wird nicht gefragt :-/

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: [email protected]")
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...
 

TheRealDarklord

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

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*
 

bluba

Bismarckapfel
Registriert
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
 

TheRealDarklord

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

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
 

wba

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

Grüßle
Wolfgang