Koken: Wert zurücksetzen

huhu,
ich möchte mit einem Wert aus einem <input> arbeiten, allerdings muss der Wert eine Zahl von 0 bis 15 sein. Wenn der Wert falsch ist, soll die Eingabe aus dem <input> gelöscht werden und genau da liegt mein Problem. Das Prüfen ob der Wert stimmt oder nicht bekomme ich hin. ich wäre sehr dankbar für Hilfe.

thx
Koken

  1. Hallo Koken.

    ich möchte mit einem Wert aus einem <input> arbeiten, allerdings muss der Wert eine Zahl von 0 bis 15 sein. Wenn der Wert falsch ist, soll die Eingabe aus dem <input> gelöscht werden und genau da liegt mein Problem. Das Prüfen ob der Wert stimmt oder nicht bekomme ich hin. ich wäre sehr dankbar für Hilfe.

    Zu welchem Zeitpunkt soll die Prüfung erfolgen?
    Wähle hierfür einen geeigneten http://de.selfhtml.org/javascript/sprache/eventhandler.htm@title=Eventhandler. (Der Handler onblur bietet sich sicher an.)

    Als nächstes überprüfst du den http://de.selfhtml.org/javascript/objekte/elements.htm#value@title=Wert des betroffenen Feldes darauf, ob er größergleich 0 und kleinergleich 15 ist. (Hier dürftest du auch den <http://de.selfhtml.org/javascript/sprache/objekte.htm#this@title=Bezug auf das aktuelle Objekt> benötigen.)

    Ist dies nicht der Fall, so setzt du für den Wert des Textfeldes einen leeren String.

    Einen schönen Freitag noch.

    Gruß, Ashura

    1. thx für die schnelle Antwort,
      leider ist mein Problem noch nicht gelöst.

      die Prüffunktion rufe ich so auf:

      <input name="input1" onKeyDown="calc();" onBlur="ok(this.value);">

      die Funktion, mit der ich den Wert Prüfe sieht so aus:
      function ok(wert)
       {
       if (wert > 15 || wert < 0)
        {
        alert("Der Wert ist nicht gültig!");
        }
       }

      nur leider funktioniert es mit

      this.value = "";

      nicht so, wie ich es mir erhoffe.

      1. Hallo Koken.

        nur leider funktioniert es mit

        this.value = "";

        nicht so, wie ich es mir erhoffe.

        Was heißt „funktioniert nicht“?
        In welchem Kontext rufst du dies auf, innerhalb der Funktion ok()?

        Einen schönen Freitag noch.

        Gruß, Ashura

      2. hi,

        <input name="input1" onKeyDown="calc();" onBlur="ok(this.value);">

        Übergebe hier lieber nicht this.value, sondern nur this als Referenz auf das Feld.

        function ok(wert)

        function ok(feld)

        if (wert > 15 || wert < 0)

        if (feld.value > 15 || feld.value < 0)

        Btw: ggf. fehlt hier noch eine Überprüfung darauf, ob es sich überhaupt um eine Zahl umwandelt, bzw. eine Umwandlung des von value immer gelieferten Strings in eine Zahl.

        nur leider funktioniert es mit
        this.value = "";
        nicht so, wie ich es mir erhoffe.

        Nee, innerhalb deiner Funktion zeigt this auf die Funktion selber.
        Wenn du aber this beim Aufruf als Wert für feld übergibst, kannst du hier dann
        feld.value = "";
        setzen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      3. ok,
        danke für eure Hilfe! Habe es geschafft!
        die Überprüfung, ob es überhaupt Zahlen sind, habe ich schon drin, allerdings nicht gerade sehr elegant:

        if(objekt.wert - objekt.wert != 0)
         {
         ...

        falls ihr dafür auch noch eine gute Idee habt, wäre es schön

      4. ok,
        danke für eure Hilfe! Habe es geschafft!
        die Überprüfung, ob es überhaupt Zahlen sind, habe ich schon drin, allerdings nicht gerade sehr elegant:

        if(objekt.wert - objekt.wert != 0)
         {
         ...

        falls ihr dafür auch noch eine gute Idee habt, wäre es schön

        1. hi,

          die Überprüfung, ob es überhaupt Zahlen sind, habe ich schon drin, allerdings nicht gerade sehr elegant: [...]
          falls ihr dafür auch noch eine gute Idee habt, wäre es schön

          isNaN() zum prüfen, ob's überhaupt eine Zahl ist, parseInt() zum Umwandeln eines eine Integer-Zahl enthaltenden Strings in eine wirkliche Zahl.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. perfekt! damit habe ich mir auch gleich meine zweite Frage gespart, die ich stellen wollte :)
            besten Dank!