hawkmaster: Feld überprüfen nur wenn es auch vorhanden ist?

Hallo,
ich habe eine PHP Seite auf der 2 input type=text Felder sind.
Ich möchte nun mit Javascript diese Felder überprüfen dass beide ausgefüllt sind, wenn man auf "Absenden" klickt.

Problem dabei ist;
ich kann diese Text Felder auch ausblenden also dass sie garnicht da sind.
Dann würde aber ein Javascript Fehler kommen.
Gibt es eine Art "Prüfung"

if (document.forms[o].textfeld)
{
  if(document.forms[o].textfeld=="")
  {
  alert('Bitte eine Zahl eingeben');
  }

}

Gruss und Danke
hawk

  1. Hallo hawkmaster,

    if (document.forms[o].textfeld)

    meinst du hier vielleicht 0 (null) anstatt o (kleines o)?
    Du kannst doch zusaetzlich abfragen, ob document.forms[0].textfeld.style.display != 'none' ist

    Gruß,

    Dieter

    1. Hallo Dieter
      daran habe ich auch schon gedacht,
      Da kommt aber trotzdem ein Fehler
      Wenn es das textfeld auf dem Form schon garnicht gibt,
      kommt immer eine Fehlermeldung

      "Object expected"

      Gibt es nicht so etwas wie

      If IsObject)document.forms...

      Gruss
      Hans

      Hallo hawkmaster,

      if (document.forms[o].textfeld)
      meinst du hier vielleicht 0 (null) anstatt o (kleines o)?
      Du kannst doch zusaetzlich abfragen, ob document.forms[0].textfeld.style.display != 'none' ist

      Gruß,

      Dieter

      1. » daran habe ich auch schon gedacht,

        Da kommt aber trotzdem ein Fehler
        Wenn es das textfeld auf dem Form schon garnicht gibt,
        kommt immer eine Fehlermeldung

        Dann stimmt schon vorher was nicht.

        "Object expected"

        Gibt es nicht so etwas wie

        If IsObject)document.forms...

        typeof aber ist in deinem Fall nicht notwendig.

        Struppi.

        1. Hallo Struppi,
          also nochmals,
          Ich habe eine kleine Funktion
          z.b.
          function check()
          {
          if(document.forms[0].textfield.value == '')
          {
          alert('Bitte etwas eingeben');
          }

          }

          Auf einem Submit Button rufe ich dann mit
          onClick diese Funktion auf

          Wenn es jetzt aber das "textfield" garnicht gibt, kommt immer
          diese Fehlermeldung
          Object expected

          Gruss
          Hans

          » daran habe ich auch schon gedacht,

          Da kommt aber trotzdem ein Fehler
          Wenn es das textfeld auf dem Form schon garnicht gibt,
          kommt immer eine Fehlermeldung

          Dann stimmt schon vorher was nicht.

          "Object expected"

          Gibt es nicht so etwas wie

          If IsObject)document.forms...

          typeof aber ist in deinem Fall nicht notwendig.

          Struppi.

          1. Ich habe eine kleine Funktion

            Jetzt schreibst du was komplett anderes als am Anfang:

            z.b.
            function check()
            {
            if(document.forms[0].textfield.value == '')

            Das textfield ist nicht da, folglich kann es auch kein textfield.value geben.

            Wenn es jetzt aber das "textfield" garnicht gibt, kommt immer
            diese Fehlermeldung
            Object expected

            Du greifst auf die Eigenschaft value eines nicht existierenden Objektes zu, das geht in die Hose.

            if(document.forms[0].textfield && !document.forms[0].textfield.value)

            wäre richtig.

            Struppi.

            1. Hi Struppi,
              danke für deine Geduld :-))
              vielleicht stelle ich mich ja auch zu dämlich an,
              aber wenn ich es so mache wie du schreibst, kommt trotzdem immer diese Fehlermeldung wenn das textfield garnicht da ist

              if(document.forms[0].textfield && !document.forms[0].textfield.value)

              wäre richtig.

              Gruss
              Hans

              1. » vielleicht stelle ich mich ja auch zu dämlich an,

                aber wenn ich es so mache wie du schreibst, kommt trotzdem immer diese Fehlermeldung wenn das textfield garnicht da ist

                Glaub ich dir nicht.

                if(document.forms[0].textfield && !document.forms[0].textfield.value)

                so machst du's?

                Struppi.

                1. Ja so habe ich es gemacht;

                  if(document.forms[0].textfield && !document.forms[0].textfield.value)
                  {
                  alert(....
                  }

                  ich habe es jetzt anderes gelöst.
                  Ich schaue vorher ob die Textfelder da sind (steht in der Datenbank)
                  wenn ja, rufe ich diese OnClick Function auf,
                  wenn nicht, gibt es das halt nicht.

                  Anders bekomme ich es nicht hin.
                  vielen Dank
                  nochmals
                  Gruss
                  Hans

                  » vielleicht stelle ich mich ja auch zu dämlich an,

                  aber wenn ich es so mache wie du schreibst, kommt trotzdem immer diese Fehlermeldung wenn das textfield garnicht da ist

                  Glaub ich dir nicht.

                  if(document.forms[0].textfield && !document.forms[0].textfield.value)

                  so machst du's?

                  Struppi.

                  1. Ja so habe ich es gemacht;

                    if(document.forms[0].textfield && !document.forms[0].textfield.value)
                    {
                    alert(....
                    }

                    und genauso funktioniert das bei mir tadellos. Ich kenne keinen browser wo das nicht so wäre. Du machst irgendetwas anderes falsch.

                    Struppi.

  2. » ich kann diese Text Felder auch ausblenden also dass sie garnicht da sind.

    Dann würde aber ein Javascript Fehler kommen.

    Nein würde nicht, sie sind ja da auch wenn du sie nicht siehst.

    Gibt es eine Art "Prüfung"

    if (document.forms[o].textfeld)

    Abgesehen vom dem o ist das genau die Art zu prüfen.

    {
      if(document.forms[o].textfeld=="")

    Da reicht es:
    if(!document.forms[o].textfeld)

    zu schreiben (es sei denn eine 0 ist eine gültige Eingabe)

    Struppi.

    1. Danke Struppi
      für deine Hilfe

      sorry, ich meinte nicht ausblenden sondern ich meinte

      Das Textfeld ist erst garnicht da, also komplett weg.
      Daher der Javascript Fehler

      Object expected

      Kann man da was machen?

      gruss
      Hans

      » ich kann diese Text Felder auch ausblenden also dass sie garnicht da sind.

      Dann würde aber ein Javascript Fehler kommen.

      Nein würde nicht, sie sind ja da auch wenn du sie nicht siehst.

      Gibt es eine Art "Prüfung"

      if (document.forms[o].textfeld)

      Abgesehen vom dem o ist das genau die Art zu prüfen.

      {
        if(document.forms[o].textfeld=="")

      Da reicht es:
      if(!document.forms[o].textfeld)

      zu schreiben (es sei denn eine 0 ist eine gültige Eingabe)

      Struppi.