Supportnet Computer
Planet of Tech

Supportnet / Forum / Webseiten/HTML

Kontaktformular mit Pflichtfeld?





Frage

Hallo, Wie bestimmt man ein Feld in einem Kontaktformular als Pflichtfeld? MFG, PMP

Antwort 1 von Gommer

https://supportnet.de/threads/39224

Antwort 2 von PMP

ok, danke.

Und wie erstellt man einen eigenen formailer?

Antwort 3 von Nessus

;-))
Die Frage in Antwort 2 musste ja kommen
;-))

1. In dem Du dich in serverseitige Scriptsprachen einarbeitest, was für einen einfachen Formmailer innerhalb kürzester Zeit mit etwas Fleiß geschehen ist
2. einen fertigen nutzt und entsprechend abänderst. Kenntnisse wie in 1 vorrausgesetzt
3. Du nutzt einen Anbieter der sowas ferig anbietet, icl. Fremdwerbung, mangelnde Anpassbarkeit der Seiten uvm. >Nicht empfehlenswert.
Punkt 1/2 setzen vorraus, das dein Server diese Scriptsprachen versteht.

Ferige Scripte findest Du unter www.php-archiv.de.
Anbieter: www.kostenlos.de

HTH

Nessus

Antwort 4 von PMP

Hoi...

Ich hab mir mal von www.ekiwi.de ein Kontaktformular mit wenig Werbung besorgt.

Klappt eigentlich auch alles, ausser das Pflichtfelder kein Alert ausgeben, wenn das dort vordefinierte nicht eingehalten wird, und darum ging es mir ja eigentlich...

Könnte sich den Code bitte mal Jemand ansehen und mir sagen, welche Fehler drin sind und diese vielleicht beheben, so dass in Zukunft Alerts erscheinen, wenn man nicht das eingibt was gefordert wird?

http://www.patcom-services.de/formular.txt (Quelltext)

Danke,

PMP

Antwort 5 von rfb

jede Menge Fehler, am auffälligsten sind die in den Bezeichnungen:
in <input name="irgendwas" ...> darf in "irgendwas" kein Punkt, Bindestrich, Umlaut, ß sein (entsprechend musst du natürlich auch die Namen im javascript anpassen).
Das müsstest du zuerst beheben, danach können wir weiter sehen.

PS: Abfragen nach einer Maximallänge sind überflüssig, die kannst du einfach im input-tag vorgeben:
<input ... maxlength="40">
(und wieder ein paar Fehlerquellen im Script gestrichen ;-)

Antwort 6 von PMP

Ok...die input name Fehler sind beseitigt, und weiter?

Antwort 7 von rfb

ohne Zugang zum Quelltext -soll ich raten wo die anderen Fehler stecken?

Hast du Mozilla, Firefox oder Netscape zur Hand?
Falls ja: Seite laden, evtl. das Formular (falsch) ausfüllen, abschicken.
im Adressfeld des Browsers
javascript:
eintippen.
Ein neues Fenster erscheint mit Fehlermeldungen und Angabe der fehlerhaften Zeile. Anders würde ich es auch nicht mit deinem Zeug machen.

Antwort 8 von PMP

Fehler: missing name after . operator
Quelldatei: http://www.patcom-services.de/kontakt.htm
Zeile: 106, Spalte: 23
Quelltext:
if (phpform.Kunden-Nr..value == "")


Fehler: eKiwi_Form_Check is not defined


Und Zugang zum Quellcode hast du ja, über Ansicht- > Quelltext

Antwort 9 von PMP

Zitat: PS: Abfragen nach einer Maximallänge sind überflüssig. Zitat Ende

wo ist das genau zu finden?

Antwort 10 von rfb

if (phpform.Kunden-Nr..value == "")

in "Kunden-Nr." sind ein Bindestrich und ein Punkt zuviel (siehe Antwort 5)
Zitat:
Abfragen nach einer Maximallänge sind überflüssig
sowas kannst du hier finden: SelfHTML

Antwort 11 von rfb

So könnte es funktionieren:

<script type="text/javascript">
<!--
function eKiwi_Form_Check(phpform)<!--  -->
{
var test = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÖÜäöüß- ";
  var testField = phpform.Name.value;
  var Validity = true;
  for (var i = 0;  i < testField.length;  i++)
  {
   if (test.indexOf(testField.charAt(i))<0)
   {
   Validity = false;
   break;
   }
  }
  if (!Validity)
  {
    alert("Für das Feld \"Name\" sind nur Buchstaben und Leerräume erlaubt.");
    phpform.Name.focus();
    return false;
  }
 if (phpform.Name.value == "")
  {
    alert("Geben sie einen Wert in das Feld \"Name\" ein.");
    phpform.Name.focus();
    return false;
  }
 if (phpform.Name.value.length < 3)
  {
    alert("Geben sie mindestens 3 Zeichen in das Feld \"Name\" ein.");
    phpform.Name.focus();
    return false;
  }
  testField = phpform.Vorname.value;
  for (i = 0;  i < testField.length;  i++)
  {
   if (test.indexOf(testField.charAt(i))<0) {
   Validity = false;
   break;
   }
  }
  if (!Validity)
  {
    alert("Für das Feld \"Vorname\" sind nur Buchstaben und Leerräume erlaubt.");
    phpform.Vorname.focus();
    return false;
  }
 if (phpform.Vorname.value == "")
  {
    alert("Geben sie einen Wert in das Feld \"Vorname\" ein.");
    phpform.Vorname.focus();
    return false;
  }
 if (phpform.Vorname.value.length < 3)
  {
    alert("Geben sie mindestens 3 Zeichen in das Feld \"Vorname\" ein.");
    phpform.Vorname.focus();
    return false;
  }
 if ((phpform.Email.value.length < 4)||(phpform.Email.value.indexOf("@")<0))
  {
    alert("Geben sie mindestens 3 Zeichen und das @ in das Feld \"email\" ein.");
    phpform.Email.focus();
    return false;
  }
 if (phpform.KundenNr.value == "")
  {
    alert("Geben sie einen Wert in das Feld \"Kunden-Nr.\" ein.");
    phpform.KundenNr.focus();
    return false;
  }
 if (phpform.KundenNr.value.length < 3)
  {
    alert("Geben sie mindestens 3 Zeichen in das Feld \"Kunden-Nr.\" ein.");
    phpform.KundenNr.focus();
    return false;
  }
  if (isNaN(phpform.KundenNr.value))
  {
    alert("Für das Feld \"Kunden-Nr.\" sind nur Ziffern (ohne Komma, Punkt oder Leerzeichen) erlaubt.");
    phpform.KundenNr.focus();
    return false;
  }
 if (phpform.StrasseNr.value == "")
  {
    alert("Geben sie einen Wert in das Feld \"Straße/Nr.\" ein.");
    phpform.StrasseNr.focus();
    return false;
  }
 if (phpform.StrasseNr.value.length < 3)
  {
    alert("Geben sie mindestens 3 Zeichen in das Feld \"Straße/Nr.\" ein.");
    phpform.StrasseNr.focus();
    return false;
  }
  if (isNaN(phpform.TelefonNr.value))
  {
    alert("Für das Feld \"Telefon-Nr\" sind nur Ziffern (ohne Komma, Punkt oder Leerzeichen) erlaubt.");
    phpform.TelefonNr.focus();
    return false;
  }
  if (isNaN(phpform.FaxNr.value))
  {
    alert("Für das Feld \"Fax-Nr.\" sind nur Ziffern (ohne Komma, Punkt oder Leerzeichen) erlaubt.");
    phpform.FaxNr.focus();
    return false;
  }
 if (phpform.Anfrage.value == "")
  {
    alert("Geben sie einen Wert in das Feld \"Anfrage\" ein.");
    phpform.Anfrage.focus();
    return false;
  }
 if (phpform.Anfrage.value.length < 1)
  {
    alert("Geben sie mindestens 1 Zeichen in das Feld \"Anfrage\" ein.");
    phpform.Anfrage.focus();
    return false;
  }
 if (phpform.Anfrage.value.length > 1000)
  {
    alert("Geben sie höchstens 1000 Zeichen in das Feld \"Anfrage\" ein.");
    phpform.Anfrage.focus();
    return false;
  }
 return (true);
}
//-->
</script>

benenne das Feld email um in Email
<input ... name="Email" ...>

(keine Ahnung, warum Moz. das sonst nicht mag.)

Einiges in deinem Script war überflüssig (wie die maxlength-Abfragen) oder sehr umständlich programmiert (wie die Validity-Schleifen), anderes fehlte (@-Abfrage bei Email-Adresse).

PS:
Vergiss nicht die Datenschutzerklärung, sonst droht eine Abmahnung (natürlich kostenpflichtig).

PS2:
spätestens nach dem 2ten Nerv-alert würde ich entweder:
- die Seite verlassen
oder
- JavaScript deaktivieren

Antwort 12 von PMP

Fehler: phpform.email.value has no properties
Quelldatei: http://www.patcom-services.de/kontakt.htm
Zeile: 94

was hat dieser Fehler zu bedeuten?

und das hier:?

Fehler: uncaught exception: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDOMTreeWalker.nextNode]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://global/content/bindings/button.xml :: fireAccessKeyButton :: line 93" data: no]

und:

Fehler: [Exception... "´Die Erlaubnis für das Lesen der Eigenschaft XULElement.selectedIndex wurde verweigert´ when calling method: [nsIAutoCompletePopup::selectedIndex]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame :: http://www.patcom-services.de/kontakt.htm :: eKiwi_Form_Check :: line 27" data: no]
Quelldatei: http://www.patcom-services.de/kontakt.htm
Zeile: 27

Antwort 13 von PMP

Also ich hab deinen code mal ausprobiert, jetzt erscheint die Schrift im Code leider komplett rot...

Antwort 14 von PMP

ok, deine version klappt beim feld Name und Vorname.

Ansonsten kommt leider noch kein Alert...

aktueller Fehler:

Fehler: phpform.Email has no properties
Quelldatei: http://www.patcom-services.de/kontakt.htm
Zeile: 64

was ist damit gemeint?

Antwort 15 von rfb

dass du bei <input ...> das Wort email in Email ändern sollst!

Antwort 16 von rfb

sorry, beim Kopieren des Scripts ins SN hat sich ein Fehler am Anfang eingeschlichen:
<script type="text/javascript"> 
<!-- 
function eKiwi_Form_Check(phpform)<!-- --> 
{
muss richtig heißen:

<script type="text/javascript"> 
<!-- 
function eKiwi_Form_Check(phpform)
{


Antwort 17 von PMP

Hab das Script am Anfang geändert, immer noch rot, ist das normal?

Und ich habs jetzt ein paar mal mit der Suchfunktion kontrolliert: Alle email sind jetzt in Email umbenannt, trotzdem erscheint der Fehler in Zeile noch...

Hier mein Script:

<script type="text/javascript">
<!--
function eKiwi_Form_Check(phpform)
{
var test = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÖÜäöüß- ";
var testField = phpform.Name.value;
var Validity = true;
for (var i = 0; i < testField.length; i++)
{
if (test.indexOf(testField.charAt(i))<0)
{
Validity = false;
break;
}
}
if (!Validity)
{
alert("Für das Feld \"Name\" sind nur Buchstaben und Leerräume erlaubt.");
phpform.Name.focus();
return false;
}
if (phpform.Name.value == "")
{
alert("Geben sie einen Wert in das Feld \"Name\" ein.");
phpform.Name.focus();
return false;
}
if (phpform.Name.value.length < 3)
{
alert("Geben sie mindestens 3 Zeichen in das Feld \"Name\" ein.");
phpform.Name.focus();
return false;
}
testField = phpform.Vorname.value;
for (i = 0; i < testField.length; i++)
{
if (test.indexOf(testField.charAt(i))<0) {
Validity = false;
break;
}
}
if (!Validity)
{
alert("Für das Feld \"Vorname\" sind nur Buchstaben und Leerräume erlaubt.");
phpform.Vorname.focus();
return false;
}
if (phpform.Vorname.value == "")
{
alert("Geben sie einen Wert in das Feld \"Vorname\" ein.");
phpform.Vorname.focus();
return false;
}
if (phpform.Vorname.value.length < 3)
{
alert("Geben sie mindestens 3 Zeichen in das Feld \"Vorname\" ein.");
phpform.Vorname.focus();
return false;
}
if ((phpform.Email.value.length < 4)||(phpform.Email.value.indexOf("@")<0))
{
alert("Geben sie mindestens 3 Zeichen und das @ in das Feld \"Email\" ein.");
phpform.Email.focus();
return false;
}
if (phpform.KundenNr.value == "")
{
alert("Geben sie einen Wert in das Feld \"Kunden-Nr.\" ein.");
phpform.KundenNr.focus();
return false;
}
if (phpform.KundenNr.value.length < 3)
{
alert("Geben sie mindestens 3 Zeichen in das Feld \"Kunden-Nr.\" ein.");
phpform.KundenNr.focus();
return false;
}
if (isNaN(phpform.KundenNr.value))
{
alert("Für das Feld \"Kunden-Nr.\" sind nur Ziffern (ohne Komma, Punkt oder Leerzeichen) erlaubt.");
phpform.KundenNr.focus();
return false;
}
if (phpform.StrasseNr.value == "")
{
alert("Geben sie einen Wert in das Feld \"Straße/Nr.\" ein.");
phpform.StrasseNr.focus();
return false;
}
if (phpform.StrasseNr.value.length < 3)
{
alert("Geben sie mindestens 3 Zeichen in das Feld \"Straße/Nr.\" ein.");
phpform.StrasseNr.focus();
return false;
}
if (isNaN(phpform.TelefonNr.value))
{
alert("Für das Feld \"Telefon-Nr\" sind nur Ziffern (ohne Komma, Punkt oder Leerzeichen) erlaubt.");
phpform.TelefonNr.focus();
return false;
}
if (isNaN(phpform.FaxNr.value))
{
alert("Für das Feld \"Fax-Nr.\" sind nur Ziffern (ohne Komma, Punkt oder Leerzeichen) erlaubt.");
phpform.FaxNr.focus();
return false;
}
if (phpform.Anfrage.value == "")
{
alert("Geben sie einen Wert in das Feld \"Anfrage\" ein.");
phpform.Anfrage.focus();
return false;
}
if (phpform.Anfrage.value.length < 1)
{
alert("Geben sie mindestens 1 Zeichen in das Feld \"Anfrage\" ein.");
phpform.Anfrage.focus();
return false;
}
if (phpform.Anfrage.value.length > 1000)
{
alert("Geben sie höchstens 1000 Zeichen in das Feld \"Anfrage\" ein.");
phpform.Anfrage.focus();
return false;
}
return (true);
}
//-->

Antwort 18 von rfb

Zitat:
immer noch rot

ich vermute du nutzt FP als Editor, dessen Quelltextfarbmarkierungen kenne ich nicht weil ich FP nicht nutze.
Möglicherweise steht rot einfach für "Kommentarbereich im HTML" , das Script ist nämlich mit <-- --> als Kommentar gekennzeichnet (ältere Browser könnten das sonst als Text im Browserfenster anzeigen).

Das Problem mit "Email" ist die Tatsache, das du 2 input-Feldern den Namen gibst, einmal
<input type="hidden" name="Email" value="info@patcom-services.de">

und dann
<input type="text" name="Email" value="" size="25" maxlength="200">

Benenne eins um in "Epost" (wenn du das 2te umbenennst musst du natürlich alle Namen im Script anpassen)!

Antwort 19 von PMP

Super..jetzt klappt alles!! Vielen vielen Dank!!

Kann man eigentlich die Standard Buttons für Abschicken, Zurücksetzen eigentlich ändern, also ne andere Grafik einfügen die die gleiche Funktion hat? wenn ja, wie?

Antwort 20 von rfb

Antwort 21 von PMP

Und nochmal danke!

Eine Frage noch zum Schluss: Wie verändert man die Farbe des Rahmen der Textfelder, und wie verändert man die Schriftart und Schriftgrösse innerhalb der Textfelder?

Antwort 22 von rfb

füge im style-Bereich (derzeit bei dir ca. Zeile 140) eine neue Zeile ein:
input {border:2px #ffee44 solid; font-size:12pt; font-family:Arial, Helvetica, sans-serif;}

was das alles bedeutet kannst du hier nachlesen www.css4you.de

Antwort 23 von PMP

Ok..aber leider werden die Felder PLZOrt --> Dropdownmenü und das Feld Anfrage -->mehrzeiliges Textfeld von diesen Einstellungen nicht betroffen...

Antwort 24 von PMP

Auch die Textfarbe im Textfeld wurde damit nicht geändert...

Antwort 25 von rfb

du solltest dir unbedingt mal CSS4You sowie SelfHTML downloaden und zu Gemüte führen (Links sind in den anderen Antworten zur Genüge)!

Wenn die CSS-Angaben für textarea und select auch gelten sollen musst du sie einfach davor schreiben:
input, select, textarea { ... } 


Schriftfarbe: ergänze
color:#9955ff; 
(oder welche Farbe auch immer) in den { ... }

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: