Uschi Renziehausen: oder funktion??

Beitrag lesen

Moin,

mich deucht, du stehst JavaScript-technisch noch ziemlich im Wald, nicht wahr? Anbei eine kleine Komplettlösung mit viel Kommentar. Ich würde dir, empfehlen, zu verstehen, was da passiert, damit du dir den Kram anpassen kansst.

liebe Grüße, Uschi

Hier der Quälcode

<html>
  <head>
  <script language="JavaScript">
  /*
   * function doCheck()
   * Diese Funktion wird mit onsubmit="return doCheck()" in deinem <form>-Tag aufgerufen.
   * Sie benötigt zwei Hilfsfunktionen:
   *  checkExists(elt), um zu überprüfen, ob Userlein denn etwas in ein Textfeld eingetragen hat
   *  checkEmail(elt), um zu überprüfen, ob Userlein eine Mehladresse eingegeben hat und die auch gültig ist
   */
  function doCheck() {
    // Ueberpruefung des Namensfeldes mit Hilfe der Funktion checkExists()
    var valName = checkExists(document.myForm.fullname);
    // Wenn valName auf false steht
    if(!valName) {
      // Fehlermeldung rausblasen
      alert("Bitte geben Sie Ihren Namen an.");
      // Cursor ins Namensfeld setzen
      document.myForm.fullname.focus();
      // false zurückgeben, damit das Formular nicht abgeschickt wird
      return false;
    }
    // Ueberpruefung des Telefonfeldes mit Hilfe der Funktion checkExists()
    var valTelfax = checkExists(document.myForm.telfax);
    // Ueberpruefung des E-Mailfeldes mit der Funktion checkEmail()
    var valMail = checkEmail(document.myForm.email);
    // wenn valTelfax UND valMail falsch sind, Fehlermeldung rausblasen
    if(!valTelfax && !valMail) {
      // Fehlermeldung rausblasen
      alert("Geben Sie entweder Ihre Telefonnummer und eine gültige E-Mail-Adresse an.");
      // Cursor ins Telefonfeld setzen
      document.myForm.telfax.focus();
      // false zurückgeben, damit das Formular nicht abgeschickt wird
      return false;
    }
    // Wenn wir hier angekommen sind, können wir true zurückgeben, damit das Formular abgeschickt wird
    return true;
  }

/**
    * Prüfen, ob ein Textfeld einen Eintrag enthält
    * Parameter: elt, ein Element des Typs input type="text"
    */
  function checkExists(elt) {
   // Wenn das Feld leer ist, wird false zurückgegeben, wenn nicht true;
    return (elt.value == "") ? false : true;
  }

/**
    * Prüft, ob eine Email-Adresse angegeben wurde und ob diese ein gültiges Format hat.
    * Parameter: elt, ein Element des Typs input type="text"
    * Hilfsfunktionen: checkExists(elt)
    */
  function checkEmail(elt) {
    // erstmal nachgucken, ob überhaupt was eingetragen wurde
    var mailExists = checkExists(elt);
    if(!mailExists) {
      return false;
    } else {
      var email = elt.value;
      /* ab hier stammt der Code aus http://selfaktuell.teamone.de/tippstricks/programmiertechnik/email/index.html */
      var usr    = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|"([^\\\x80-\xff\015\012"]|\\[^\x80-\xff])+")";
      var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\.[a-zA-Z]{2,5}";
      var regex  = "^"  + usr + "@" + domain + "$";

var rgx    = new RegExp(regex);
      return rgx.exec(email) ? true : false;
    }
  }
  </script>
  <style type="text/css">
  </style>
  </head>
  <body>
    <form name="myForm" id="myForm"  onsubmit="return doCheck()">
      Ihr Name: <input type="text" name="fullname" id="fullname" value="" /> <br />
      Bitte geben Sie entweder Ihre Telefon/Fax-Nummer oder Ihre E-Mail-Adresse an:<br />
      Telefon/Fax: <input type="text" name="telfax" id="telfax" value="" /><br />
      E-Mail: <input type="text" name="email" id="email" value="" />
      <input type="submit" name="btnSubmit" id="btnSubmit" value="Senden" />
    </form>
  </body>
</html>