Claudia: Formulareingaben werden nicht überprüft.

Hallo zusammen

Hab schon in den älteren Postings über dieses Thema gestöbert, aber irgendwie keine Lösung finden können, warums bei mir nicht funzt.

Ich hoffe, da kann mir jemand sagen, was ich falsch gemacht habe.

Hier der Teil meines Quellcodes dens betrifft :

<html>
<head>
<title>Anmeldung</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!--Fireworks MX 2004 Dreamweaver MX 2004 target.  Created Sun Nov 13 05:13:15 GMT+0100 2005-->
<link href="_css/Ayurveda.css" rel="stylesheet" type="text/css">
<style type="text/css">
</style>
<script type="text/javascript">
function chkformular () {
 if (document.Formular.Name.value == "") {
  alert ("Bitte geben Sie Ihren Namen an");
  document.Formular.Name.focus ();
  return false;
 }
 if (document.Formular.Vorname.value == "") {
  alert ("Bitte geben Sie Ihren Vornamen an");
  document.Formular.Vorname.focus ();
  return false;

}
 if (document.Formular.Adresse.value == "") {
  alert ("Bitte geben Sie Ihre Adresse an");
  document.Formular.Adresse.focus ();
  return false;
 }
 if (document.Formular.E-Mail.value.IndexOf ("@" == -1) {
  alert ("Keine gültige E-Mail Adresse");
  document.Formular.E-Mail.focus ();
  return false;

}
}
</script>

</head>
<body class="content">
<table width="95%"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="4%" height="35"><img src="_bilder/spacer.gif" alt="" width="30" height="53"></td>
    <td width="96%"><br>
    <br>
    <span class="menutitel">Anmeldung Kochkurs </span></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p class="lauftext"><br>
      <br>
      </p>
      <form name="Formular" method="post" action="mailto:claudia.genkinger@freesurf.ch" enctype="text/plain" onSubmit="return chkformular ()">
        <table class="lauftext" width="95%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="19%">Anrede</td>
            <td width="11%"><input type="radio" name="Anrede" value="Herr">
            Herr </td>
            <td width="70%"><input type="radio" name="Anrede" value="Frau">
            Frau  </td>
          </tr>
          <tr>
            <td>Name</td>
            <td colspan="2"><input name="Name" type="text" class="buttons" id="Name" size="50" maxlength="50"></td>
          </tr>
          <tr>
            <td>Vorname</td>
            <td colspan="2"><input name="Vorname" type="text" class="buttons" id="Vorname" size="50" maxlength="50"></td>
          </tr>
          <tr>
            <td>Strasse</td>
            <td colspan="2"><input name="Strasse" type="text" class="buttons" id="Strasse" size="50" maxlength="50"></td>
          </tr>
          <tr>
            <td>PLZ / Ort </td>
            <td colspan="2">              <table width="100%"  border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td><input name="PLZ" type="text" class="buttons" id="PLZ" size="5" maxlength="5">
                  <img src="_bilder/spacer.gif" width="1" height="1">
                  <input name="Ort" type="text" class="buttons" id="Ort" size="40" maxlength="40"> </td>
                </tr>
            </table></td>
          </tr>
          <tr>
            <td>Land</td>
            <td colspan="2"><input name="Land" type="text" class="buttons" id="Land" size="50" maxlength="50"></td>
          </tr>
          <tr>
            <td>Telefon</td>
            <td colspan="2"><input name="Telefon" type="text" class="buttons" id="Telefon" size="50" maxlength="50"></td>
          </tr>
          <tr>
            <td>E-Mail</td>
            <td colspan="2"><input name="EMail" type="text" class="buttons" id="E-Mail" size="50" maxlength="50"></td>
          </tr>

Danke euch schonmal und Grüsse
Claudia

  1. Hi,

    könntest du evtl. die Seite mal irgendwie verlinken, dann könnten wir uns das mal im "Real life" ansehen...

    <html>

    Doctype?

    <!--Fireworks MX 2004 Dreamweaver MX 2004 target.  Created Sun Nov 13 05:13:15 GMT+0100 2005-->

    MMmhh....

    <style type="text/css">
    </style>

    Noch mehr mmhh....

    <table width="95%"  border="0" cellpadding="0" cellspacing="0">

    Erst recht mmhh... Tabellendesign....

    <img src="_bilder/spacer.gif" alt="" width="30" height="53">

    Sehr viel mmhh... Spacer-Gif...

    <form name="Formular" method="post" action="mailto:claudia.genkinger@freesurf.ch" enctype="text/plain" onSubmit="return chkformular ()">

    versuchs mal so:

    onSubmit="chkformular();"

    E7

  2. Hi,

    Eine genaue Fehlerbeschreibung würde es erleichtern.
    was passiert den genau?

    Dein Code endet auch abruppt...
    Vielleicht hast du aber auch nicht alles rein kopiert.

    gruß ron

  3. Hallo Claudia,

    if (document.Formular.E-Mail.value.IndexOf ("@" == -1) {

    Diese Zeile kommt mir schon mal "spanisch" vor.

    Gruß Gernot

    1. hi,

      if (document.Formular.E-Mail.value.IndexOf ("@" == -1) {

      Diese Zeile kommt mir schon mal "spanisch" vor.

      Good point :-)
      War mir beim überfliegen des Codes gar nicht aufgefallen.

      Zur Erklärung für Claudia:
      Wie du unter Selbstvergebene Namen nachlesen kannst, dürfen die Namen von Javascript-Objekten nur aus Buchstaben und Ziffern bestehen, bzw. darüber hinaus "als einziges Sonderzeichen den Unterstrich _ enthalten" - document.Formular.E-Mail ist also kein gültiges Javascript-Objekt.
      Stattdessen würde bei

      document.Formular.E-Mail.value.IndexOf

      das - als der Minus-Operator erkannt - es würde also versucht, von document.Formular.E den Wert von Mail.value.IndexOf abzuziehen.

      Du könntest eine alternative Syntax zum Zugriff auf das Formularelement verwenden - bspw. document.Formular.elements["E-Mail"].
      Aber ich würde dir eher raten, gleich den Feldnamen in einen "javascript-kompatiblen" zu ändern - bspw. name="EMail" - um möglichen weiteren zukünftigen Problemen dieser Art von vornherein aus dem Weg zu gehen.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hallo wahsaga,

        if (document.Formular.E-Mail.value.IndexOf ("@" == -1) {

        Good point :-)

        das - als der Minus-Operator erkannt - es würde also versucht, von document.Formular.E den Wert von Mail.value.IndexOf abzuziehen.

        Aber ich würde dir eher raten, gleich den Feldnamen in einen "javascript-kompatiblen" zu ändern - bspw. name="EMail" - um möglichen weiteren zukünftigen Problemen dieser Art von vornherein aus dem Weg zu gehen.

        Abgesehen von dem Minus-Operator gibt es in dieser Zeile auch zwei öffnende bei nur einer schließenden runden Klammer.

        Gruß Gernot

        1. Hallo,

          Abgesehen von dem Minus-Operator gibt es in dieser Zeile auch zwei öffnende bei nur einer schließenden runden Klammer.

          Und statt IndexOf() ist indexOf() zu schreiben.

          MfG, Thomas

          1. hi,

            Abgesehen von dem Minus-Operator gibt es in dieser Zeile auch zwei öffnende bei nur einer schließenden runden Klammer.

            Und statt IndexOf() ist indexOf() zu schreiben.

            Vier bzw. inzwischen sechs Augen sehen mehr als zwei :-)

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hi,

        Aber ich würde dir eher raten, gleich den Feldnamen in einen "javascript-kompatiblen" zu ändern - bspw. name="EMail"

        Hat sie doch sogar. ;-)
        Allerdings versucht sie dann id="E-Mail" anzusprechen anstatt name="EMail".

        Und übrigens: "dank" mailto: nützen die Überprüfungen herzlich wenig, da bei sehr vielen Besuchern die Formulardaten ohnehin nicht dem eMail-Programm übergeben werden.

        freundliche Grüße
        Ingo

      3. Hallo,

        Wie du unter Selbstvergebene Namen nachlesen kannst, dürfen die Namen von Javascript-Objekten nur aus Buchstaben und Ziffern bestehen, bzw. darüber hinaus "als einziges Sonderzeichen den Unterstrich _ enthalten"

        SELFHTML ist hier ziemlich ungenau. In ECMAScript dürfen Bezeichner aus verschiedenen Unicode-Buchstabenzeichen und -Zahlzeichen bestehen. http://bclary.com/2004/11/07/ecma-262.html#a-7.6 Damit ist »Buchstaben und Ziffern« keinesfalls A-Z und 0-9 und »Sonderzeichen« heißt nicht alles außer A-Z und 0-9.
        Sowieso kann man Escape-Sequenzen in Bezeichnern verwenden, sodass z.B. document.Formular.E\u002DMail funktioniert. Durch die objekt["eigenschaft"]-Notation sind, wie du sagst, sowieso alle Beschränkungen aufgehoben.

        Mathias