Der Martin: Fehler im Programm

Beitrag lesen

Hallo,

das problem ist, das ich auf einen definierten okaybutton klicke und dann ein popup mit "sie bleiben dumm" erscheint. obwohl er mir, wenn ich die fallunterscheidung nicht habe und die zeile : document.write(laenge); vorhanden ist schreibt: 1.

das ist auch logisch und richtig.
Sehen wir uns das mal an:

<!--

Den HTML-Kommentar um das Script kann man sich nun wirklich sparen, wenn man nicht unbedingt noch zehn Jahre alte Uraltbrowser bedienen möchte.

function work() {
kette=String(z);

So: Wo kommt die Variable z her? Sie ist undefiniert, eigentlich müsste das Script hier schon mit einem Fehler abbrechen. Aber vielleicht ist der Browser ja so fehlertolerant (testest du etwa mit dem IE?) und nimmt die unbekannte Variable einfach mit 0 an. Dann wandelst du hier also die Zahl 0 in den String "0" um.

laenge=kette.length;

Okay, laenge ist jetzt 1, denn der String "0" enthält genau ein Zeichen. Das hast du ja schon herausgefunden.

switch (laenge) {
  case "1":

Trifft nicht zu, denn der String "1" ist nicht dasselbe wie die Zahl 1.

case "2":
  case "3":
  case "4":

Trifft auch alles nicht zu, ...

default:
    alert("Sie bleiben leider dumm");

so dass letztendlich der Ersatzzweig genommen wird.

und das kann ja wohl nicht sein, oder!?

Oder doch?

So long,
 Martin

--
Wenn der Computer wirklich alles kann,
dann kann er mich mal kreuzweise.