Nico: Ist mind. eines von mehreren Feldern ausgefuellt ist?

Hallo,

Dass ich mit:
<!--
function check ()
{
  if (document.Form1.name.value == "")
  {
   alert ("Bitte geben Sie Ihren Namen ein!");
   document.Form1.name.focus ();
   return false;
  }
}
--!>
ueberpruefen kann, ist mir klar. Wie aber stelle ich es an zu ueberpruefen, ob die Felder:
"strasse ", "nr.", "plz", "ort"
ODER
"tel."
ODER
"fax"
ODER
"email" ausgefuellt sind?

Weiss jemand Rat?

Beste Gruesse
Nico

  1. Hallo,

    Dass ich mit:
    <!--

    »»  function check ()
    »»  {

    if (document.Form1.name.value == "")
      {
       alert ("Bitte geben Sie Ihren Namen ein!");
       document.Form1.name.focus ();
       return false;
      }
    }
    --!>
    ueberpruefen kann, ist mir klar. Wie aber stelle ich es an zu ueberpruefen, ob die Felder:
    "strasse ", "nr.", "plz", "ort"

    »»  ODER

    "tel."
    ODER
    "fax"
    ODER
    "email" ausgefuellt sind?

    Weiss jemand Rat?

    Beste Gruesse
    Nico

    Hallo Nico,

    ich bin nicht sicher ob ich verstanden habe, wo Dein Problem liegt.
    Denn natürlich überprüfst Du das genauso.
    Wenn Du wissen möchtes, wie Du das ganze in einer funktion unterbringen möchtest kann ich Dir helfen.
    Bringe Deine if- Abfrage in einer for- Schleife unter.
    Damit das funktioniert mußt Du alle Formularfelder gleichlautend benennen etwa: name1, name2, name3....
    Das Script könnte dann so aussehen

    function Check()
    {
    var feld="";
    for(i=1;i<[anzahl der Felder+1];i++)
      {
      feld=name+i;
      if(document.forms[#][feld].value=="")
       {
       alert("Eingabe unvollständig!");
       document.forms[#][feld].focus();
       return false;
       break;
       }
      }
    }
    Sollte eigentlich funktionieren.

    Ciao

    Sebastian

    1. Hallo Sebastian,

      ich bin nicht sicher ob ich verstanden habe, wo Dein Problem liegt.

      Das Problem stellt sich folgendermassen:

      Bisher frage ich bei der Formulareinfabe nur ab, ob das Feld Name ausgefuellt ist. Dabei gehe ich davon
      aus, das derjenige, der das Formular ausfuellt, auch so schlau ist, zu hinterlassen, wie er zu erreichen ist.

      Da gibt's aber dann doch welche, die weder dei Anschrift ausfuellen, noch die Tel. Nr. oder Fax.Nr.
      oder Email.

      Was ich jetzt sicherstellen will, ist , dass derjenige, der das Formular ausfuellt, die Felder mit Angaben zur
      postalischen Anschrift ausfuellt (also die Felder: Strasse, Nr., PLZ, Ort). Tut er das nicht, sollte eines der
      folgenden Felder ausgefuellt sein: Tel. oder Fax oder Email.

      Die Funktion, die ich suche, sollte also folgendes testen:
      (strasse AND nr AND plz AND ort) OR (tel OR fax OR email)

      Stellt Deine Funktion das sicher?

      Gruss Nico

      1. nein... die for-schleife in diesem beispiel verknüpft nur

        feld1 UND feld2 UND feld3 ... ... UND letztes feld

      2. Hallo Sebastian,

        ich bin nicht sicher ob ich verstanden habe, wo Dein Problem liegt.

        Das Problem stellt sich folgendermassen:

        Bisher frage ich bei der Formulareinfabe nur ab, ob das Feld Name ausgefuellt ist. Dabei gehe ich davon

        »»  aus, das derjenige, der das Formular ausfuellt, auch so schlau ist, zu hinterlassen, wie er zu erreichen ist.

        Da gibt's aber dann doch welche, die weder dei Anschrift ausfuellen, noch die Tel. Nr. oder Fax.Nr.

        »»  oder Email.

        Was ich jetzt sicherstellen will, ist , dass derjenige, der das Formular ausfuellt, die Felder mit Angaben zur
        postalischen Anschrift ausfuellt (also die Felder: Strasse, Nr., PLZ, Ort). Tut er das nicht, sollte eines der
        folgenden Felder ausgefuellt sein: Tel. oder Fax oder Email.

        Die Funktion, die ich suche, sollte also folgendes testen:

        »»  (strasse AND nr AND plz AND ort) OR (tel OR fax OR email)

        Stellt Deine Funktion das sicher?

        Gruss Nico

        Hi Nico,
        nein tut sie nicht.

        In dem Fall versuch folgendes:

        function Check()
        {
        if(document.forms[#].fax.value=="" && document.forms[#].tel.value=="" && document.forms[#].email.value=="")
          {
          if(document.forms[#].strasse.value=="" document.forms[#].nr.value=="" document.forms[#].plz.value=="" document.forms[#].ort.value=="")
           {
           alert("Bitte geben sie..... ein");
           document.forms[#].strasse.focus();
           return false;
           }
          return true;
          }
        return true;
        }

        das erste if() überprüft ob in den Feldern fax, tel und email kein eintrag gemacht wurde(es genügt also ein eintrag um dsa Formular abzusenden). ist dies der fall überprüft das zweite if() ob in einem der adressfelder kein Eintrag gemacht wurde. ist dies der Fall wird mit alert() eine nachricht ausgegeben und der focus auf das feld strasse gesetzt. return false verhindert dass das formular abgeschickt wird.

        Ciao

        Sebastian

        1. Hallo Sebastian,

          herzlichen Dank fuer Deine Hilfe!

          Beste Gruesse
          Nico