ifo: if/else funktion mit Fehler

Hi,

kann mir vielleicht jemand den Fehler hier nennen? Ich hab keine Ahnung, warum das nicht funktioniert. Zwar geht das Fenster ("Bitte tragen Sie Ihren Namen ein!") auf, aber auch, wenn "name" nicht leer ist.

function meldung3()
   {
    if ((name == "") || (name == null))
   {
    alert("Bitte tragen Sie Ihren Namen ein!");
   }
    else
   {
    alert("Vielen Dank!");
   }

}

Thx im Voraus

ifo

  1. Hi

      
    var name="test";  
    function meldung3() {  
        if ((name == "") || (name == null)) {  
         alert("Bitte tragen Sie Ihren Namen ein!");  
     } else {  
         alert("Vielen Dank!");  
     }  
    }  
    meldung3();  
    
    

    Sry,
    kann ich nicht nachvollziehen!

  2. Hi ifo!

    Das Problem ist nicht nachvollziehbar.
    Überprüfe, wie name gefüllt wird.
    Warum schreibst du die Funktion nicht so, dass ihr "name" als Parameter übergeben wird?

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hallo

      Überprüfe, wie name gefüllt wird.
      Warum schreibst du die Funktion nicht so, dass ihr "name" als Parameter übergeben wird?

      Müsste name genau deswegen nicht sowieso leer sein? Ich gehe bei meiner Überlegung grade von PHP aus, wie ist das bei JavaScript mit dem Scope von Variablen?

      Tschö, Auge

      --
      Die deutschen Interessen werden am Liechtenstein verteidigt.
      Veranstaltungsdatenbank Vdb 0.2
      1. Hi,

        Müsste "name" genau deswegen nicht sowieso leer sein? Ich gehe bei meiner Überlegung grade von PHP aus, wie ist das bei JavaScript mit dem Scope von Variablen?

        exakt, name ist reserviert und darf nicht als globale Variable verwendet werden. Es gibt - insbesondere im Frameset - einen Konflikt mit window.name.

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
        1. Hi,

          exakt, name ist reserviert und darf nicht als globale Variable verwendet werden. Es gibt - insbesondere im Frameset - einen Konflikt mit window.name.

          Eben auf Grund der Existenz von window.name *handelt* es sich doch bereits um eine globale Variable.
          Und eigentlich alle halbwegs aktuellen Browser ueberlauben es auch, den Wert zu ueberschreiben (wobei manche die moeglichen Werte ggf. restriktieren).

          Das man es nicht unbedingt als "eigene" globale Variable nutzen wollte, ist natuerlich eine andere Sache.

          MfG ChrisB

          1. Hallo

            exakt, name ist reserviert und darf nicht als globale Variable verwendet werden. Es gibt - insbesondere im Frameset - einen Konflikt mit window.name.

            Eben auf Grund der Existenz von window.name *handelt* es sich doch bereits um eine globale Variable.
            Und eigentlich alle halbwegs aktuellen Browser ueberlauben es auch, den Wert zu ueberschreiben (wobei manche die moeglichen Werte ggf. restriktieren).

            Das man es nicht unbedingt als "eigene" globale Variable nutzen wollte, ist natuerlich eine andere Sache.

            Meine Frage bezog sich eher darauf, dass die Variable name (offensichtlich als Wert des name-Attributs eines <input>s) innerhalb einer Funktion benutzt wird, ohne an sie übergeben worden zu sein. Wenn das in JavaScript analog zu PHP funktioniert (wovon ich ausgehe), ist es kein Wunder, dass die untenstehende Bedingung (Code aus dem Eröffnungsposting) immer zutrifft.

            function meldung3()  
               {  
                if ((name == "") || (name == null))  
            //...
            

            Tschö, Auge

            --
            Die deutschen Interessen werden am Liechtenstein verteidigt.
            Veranstaltungsdatenbank Vdb 0.2
            1. Hi,

              Meine Frage bezog sich eher darauf, dass die Variable name (offensichtlich als Wert des name-Attributs eines <input>s) innerhalb einer Funktion benutzt wird, ohne an sie übergeben worden zu sein.

              Was bei einer globalen Variablen in JavaScript ja eben derart moeglich waere.

              Wenn das in JavaScript analog zu PHP funktioniert (wovon ich ausgehe),

              Nein, im Gegensatz zu PHP erfordert JS hier kein "global"-Keyword o.ae.

              ist es kein Wunder, dass die untenstehende Bedingung (Code aus dem Eröffnungsposting) immer zutrifft.

              function meldung3()

              {
                  if ((name == "") || (name == null))
              //...

                
              Sie wuerde dann nicht zutreffen, wenn window.name bereits einen Wert enthalten wuerde - was es, wie von Joachim angemerkt, bspw. innerhalb eines Framesets durchaus tun koennte.  
                
              MfG ChrisB