Martin: oder funktion??

<script language="JavaScript">
<!--
function doCheck() {
  if (!validName())
  {
   return false;
  }
  if (!validTele())
  {
   return false;
  }
  return true;
 }

function validName()
 {
  var str=document.leitern.name.value;
  if ((str == null) || (str.length == 0))
  {
   alert("Bitte geben Sie Ihren Namen an.");
   return false;
  }
  return true;
 }
 function validTele()
 {
  var str=document.leitern.tel_fax.value;
  if ((str == null) || (str.length == 0))
  {
   alert("Bitte geben Sie Ihre Telefon- oder Faxnummer an!");
   return false;
  }
   return true;
 }

Dieses Skript hab ich. Jetzt will ich aber das entweder im telefon-feld as stehen muß bzw. eine email angegeben sein muß. wie mach ich so eine oder funktion?

danke für etwaige hilfe

  1. <script language="JavaScript">
    <!--
    function doCheck() {
      if (!validName())
      {
       return false;
      }
      if (!validTele())
      {
       return false;
      }
      return true;
    }

    Dieses Skript hab ich. Jetzt will ich aber das entweder im telefon-feld as stehen muß bzw. eine email angegeben sein muß. wie mach ich so eine oder funktion?

    Ähm, mit einem "oder" im if eventuellerweise? Ein forschender Blick in das Javascript-Kapitel von SelfHTML hätte Dir garantiert weitergeholfen: SelfHTML > Javascript > Javascript Sprachelemente > Operatoren > Logische Operatoren > oder. Sogar mit Beispiel.

    Gruß,
      soenk.e

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