IF-Abfrage
Fabienne
- javascript
1 Lachgas0 Der Martin1 Cheatah0 Felix Riesterer1 Thomas Meinike0 Fabienne
Hallo zusammen,
warum wird bei folgender if-Abfrage immer YES ausgegeben?
var start_x=document.frm["start_x"].value;
var ende_x=document.frm["ende_x"].value;
if( start_x < ende_x )
{
document.write("YES");
}
Grüße Fabienne
Hallo Fabienne!
warum wird bei folgender if-Abfrage immer YES ausgegeben?
Vielleicht weil start_x
immer kleiner als ende_x
ist?
> var start_x=document.frm["start_x"].value;
> var ende_x=document.frm["ende_x"].value;
>
> if( start_x < ende_x )
> {
> document.write("YES");
> }
Es bedarf schon einer ausführlicheren Beschreibung!
℆, ℒacℎgas
Hallo Fabienne,
warum wird bei folgender if-Abfrage immer YES ausgegeben?
Schwer zu sagen. Ein bisschen mehr Code dazu könnte hilfreich sein, vor allem auch der zugehörige HTML-Code.
var start_x=document.frm["start_x"].value;
var ende_x=document.frm["ende_x"].value;
Auf welche Objekte greifst du damit zu? Ich vermute, du willst Formularelemente abfragen, aber die Adressierung scheint mir etwas verunglückt. Meintest du vielleicht sowas:
var start_x=document.forms["frm"].elements["start_x"].value;
Und was bei der missglückten Zuweisung an start_x und ende_x wirklich zugewiesen wird, das wissen die Götter - aber es ist offensichtlich nicht das, was du erwartest.
So long,
Martin
Hi,
warum wird bei folgender if-Abfrage immer YES ausgegeben?
vielleicht weil in start_x immer z.B. "100" und in ende_x "2" steht? Dann wäre start_x nämlich definitiv kleiner als ende_x.
Cheatah
Liebe Fabienne,
probiere mal folgendes aus:
var start_x=document.frm["start_x"].value;
var ende_x=document.frm["ende_x"].value;
// Debug-Ausgabe erzeugen
alert("Folgende Werte werden verarbeitet: " + start_x + " und " + ende_x);
if( start_x < ende_x )
{
document.write("YES");
}
Damit siehst Du, welche Werte die Variablen start_x und ende_x enthalten.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo,
warum wird bei folgender if-Abfrage immer YES ausgegeben?
var start_x=document.frm["start_x"].value;
var ende_x=document.frm["ende_x"].value;if( start_x < ende_x )
{
document.write("YES");
}
"Immer" vermutlich nicht, z. B. aber bei "10" und "2" ist das Ergebnis durchaus nachvollziehbar, denn es werden Zeichenketten verglichen.
Alternative:
if(start_x*1 < ende_x*1){...}
oder
if(parseFloat(start_x) < parseFloat(ende_x )){...}
oder
if(Number(start_x) < Number(ende_x )){...}
oder auch parseInt()
statt parseFloat()
, wenn es um ganzzahlige Werte geht.
MfG, Thomas
Hi,
warum wird bei folgender if-Abfrage immer YES ausgegeben?
var start_x=document.frm["start_x"].value;
var ende_x=document.frm["ende_x"].value;if( start_x < ende_x )
{
document.write("YES");
}"Immer" vermutlich nicht, z. B. aber bei "10" und "2" ist das Ergebnis durchaus nachvollziehbar, denn es werden Zeichenketten verglichen.
Alternative:
if(start_x*1 < ende_x*1){...}
oder
if(parseFloat(start_x) < parseFloat(ende_x )){...}
oder
if(Number(start_x) < Number(ende_x )){...}
oder auchparseInt()
stattparseFloat()
, wenn es um ganzzahlige Werte geht.
Thanx.
Genau das war mein Fehler....
Grüße und besten Dank!