Markus: Was mache ich falsch?

Hi Leute!

Das Script soll "A-" im Feld PLZ ausschließen.

script:

var plz=document.Formular.PLZ.value;
  var ort=document.Formular.Ort.value.toLowerCase();

if (plz.substr(0,1)=="A-") plz=plz.substr(2,plz.length()-2);

if (ort!= "graz" && ort != "wien") ort="";

if(plz != ""){
   if(plz.substr(0,1) == "1")
   alert("1");
    if(plz.substr(0,1) == "2")
   alert("2");
   }
else if(ort != "")
   {
if(ort == "graz")
   alert("Ort Graz");
   if(ort  == "wien")
   alert("Ort Wien");
   }

Möchte erreichen.
1.
Wenn die Eingabe "A-" im PLZ Feld alleine und ort wien steht dass er Ort als Priorität genommen wird (alert "Ort Wien")

2.
Wenn die Eingabe "A-1010" im PLZ Feld steht und ort wien steht dass er PLZ als Priorität nimmt aber nur die Zahl (alert "1")

3.
Wenn die Eingabe "1010" im PLZ Feld (A- wurde gelöscht) steht und ort wien steht dass er PLZ als Priorität nimmt (alert "1")

Dh: Wenn "A-" steht sollte es ignoriert werden und das Feld PLZ sollte leer sein...

Wie kann ich das realisieren bzw was ist an dem oberen Code falsch(bis jetzt wird angenommen das wenn "A-" alleine im PLZ Feld steht dass es nicht leer ist und daher ende)?

Hab die alerts genommen damit es einfacher ist und das mal das Grundgerüst paßt.

Wer kann mir da weiterhelfen?

Danke im voraus

MFG
Markus

  1. Das Script soll "A-" im Feld PLZ ausschließen.

    if (plz.substr(0,1)=="A-") plz=plz.substr(2,plz.length()-2);

    substr() erwartet eine Länge als zweiten Parameter und Dein Vergleichstext ist definitiv _nicht_ nur ein Zeichen lang. Deshalb funktioniert der ganze if-Block nicht.
    Am Ende der Zeile bei plz.length ist übrigens noch ein Fehler: length ist keine Funktion.

    Tipp: Bei solchen Sachen ist es meistens hilfreich, sich die Variablen zwischen den Schritten ausgeben zu lassen. Mit einem

    alert("plz="+plz);

    direkt nach obiger Zeile hättest Du festgestellt, daß der if-Block nicht funktioniert, d.h. daß plz vor und nach dem if-Block gleich ist und nicht verändert wird. Als nächstes wäre obiges alert() in den if-Block gewandert, um festzustellen, ob der Block überhaupt angesteuert wird und falls ja, ob das Abschnippeln funktioniert. Da in Deinem Fall alert() dann gar nicht mehr erschien, konnte es nur noch an der if-Bedingung liegen.

    Gruß,
      soenk.e

    1. Hi

      Danke für deine Antwort!

      Und wie kann ich es jetzt richtig lösen??

      Weiß ja jetzt leider nicht was ich machen muß um es richtig zu stellen?

      Kannst du mir dabei helfen?

      MFG
      Markus

      if (plz.substr(0,1)=="A-") plz=plz.substr(2,plz.length()-2);

      substr() erwartet eine Länge als zweiten Parameter und Dein Vergleichstext ist definitiv _nicht_ nur ein Zeichen lang. Deshalb funktioniert der ganze if-Block nicht.
      Am Ende der Zeile bei plz.length ist übrigens noch ein Fehler: length ist keine Funktion.

      1. Habs jetzt endlich hinbekommen:

        if (plz.substr(0,2) == "A-") plz=plz.substr(2,plz.length -2)

        müßte doch passen oder?

        MFG
        Markus

        1. Habs jetzt endlich hinbekommen:

          if (plz.substr(0,2) == "A-") plz=plz.substr(2,plz.length -2)

          müßte doch passen oder?

          "Ob es richtig ist oder nicht, das sagt Dir gleich das Licht" :)

          Gruß,
            soenk.e

          PS: Bei mir funktioniert es so.