if/else funktion mit Fehler
ifo
- javascript
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
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!
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
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
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
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
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
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