twegele: Formular eingabe überprüfen

Hallo,
ich bastel gerade ein bisschen am JavaScript herum.
Und hab folgendes Problem, wenn in meinem Feld eine Eingabe gemacht wird, darf diese nicht größer als 250 sein. Wenn die eingabe größer als 250 ist würd ich gern ein alert fenster öffnen.
Fakten:
  - bis jetzt klappt das ganze nur wenn ich auf aktualisieren klicke
  - ich möchte das das alter fenster kommt wenn man das feld verlässt

folgendes hab ich:

ein Eingabe feld mit namen : userDial

ein:
if (users > 250) {  onMouseOut="alert("Error!!")";  }else {
mein restliches java script }

Kann mir vielleicht jemand helfen?

Vielen Dank,
schönes Wochenende!

  1. Hallo,

    Hi,

    • ich möchte das das alter fenster kommt wenn man das feld verlässt

    Ich würde mittels onChange im Textfeld das prüfende JS anstossen.

    schönes Wochenende!

    Ebenso

    Cheers Chris

    1. Hi!
      onChange funktioniert so oder?

      onChange="alert=("bla")";

      Danke

      1. Hi!
        ich hab mir jetzt etwas zusammengebaut, leider läuft es immer noch nicht.
        Kann das vielleicht jemand nocheinmal anschauen?

        Vielen Dank:
        Mein Formular:
        <input name="userDial" onMouseout="return CheckInput(); type="text">

        Mein JavaScript:
        function CheckInput() {
          if(users > 250)
          {
            alert("ausgabe!");
            return false;
          }return true;

        }

        Vielen Dank!

        1. Hi!

          Moien,

          ich hab mir jetzt etwas zusammengebaut,

          zum Glück baust Du keine Häuser ;)

          leider läuft es immer noch nicht.

          Und was bekommst Du für Fehler angezeigt?!

          Vielen Dank:
          Mein Formular:
          <input name="userDial" onMouseout="return CheckInput(); type="text">

          Jetzt doch ein Mouse - Event?! M.M. sinnfrei in Formularen.

          Ich weiss nicht was Du im Ganzen vor hast aber wenn Du "überhaupt" einen Rückgabewert brauchst dann prüfe das Formular mit onSubmit erst beim Absenden.

          Ach da fehlt übrigens ein "!

          Mein JavaScript:
          function CheckInput() {
            if(users > 250)
            {
              alert("ausgabe!");
              return false;
            }return true;

          }

          Und woher soll CheckInput() wissen was "users" ist und wo es herkommt?!

          Und noch rein Interessehalber, 250 meint die Zahl und nicht etwa die Länge des Inhaltes des Input namens userDial!

          Ich würde mir mal http://de.selfhtml.org/javascript/beispiele/formulareingaben.htm anschauen!

          Vielen Dank!

          Gruß Chris

          1. Hallo,

            zum Glück baust Du keine Häuser ;)

            ok ;). Handwerklich bin ich eh unbegabt :)

            Und was bekommst Du für Fehler angezeigt?!

            im firefox gar keinen da geht es einfach nicht, im ie steht einfach fehler auf der seite

            Was ich bewirken will?

            Also, wenn man in das Formular feld eine eingabe macht die Größer als 250 ist, und das Formular feld dann verlässt, möchte ich das ein Entsprechendes alert fenster auftaucht, Gut das mit 'users' war etwas sinnfrei das hab ich schon kapiert.
            Aber irgendwie muss das doch gehen, mit Mouseout wenn man das Formular verlässt.

            Vielen vielen dank!

            1. Hallo,

              ok ;). Handwerklich bin ich eh unbegabt :)

              Das macht nichts ;)

              im firefox gar keinen da geht es einfach nicht, im ie steht einfach fehler auf der seite

              Also im Mozilla gibt es unter Extras, Webentwicklung eine JS-Konsole (sollte im FF so ähnlich heissen), da steht dann so gar etwas Aussage kräftigeres als "Fehler" ;) ...

              Aber irgendwie muss das doch gehen, mit Mouseout wenn man das Formular verlässt.

              Probiere es doch mal step bei step aus, nur so um zuschauen was was macht und wie sich "Maus" und alert() verhält :

              function CheckInput() {
              alert("Ich bin dein Event H&auml;ndler");
              }

              <form name="meinFormular">
              <input name="userDial" onMouseout="CheckInput()" type="text">
              </form>

              Und dann tauschst Du onMouseout mal gegen onChange ... und dann sehen wir weiter ;)

              Vielen vielen dank!

              Sei froh dass ich keinen Bock auf arbeiten habe ;)

              Cheers Chris

              1. Hi!

                Und dann tauschst Du onMouseout mal gegen onChange ... und dann sehen wir weiter ;)

                Okay! Hab ich gemacht, du hast recht, OnChange ist hier wohl besser. Hat sogar geklappt den alert text auszugeben. jetzt versuch ich nur noch rigendwie den Inhalt aus dem Formular auszulesen und wenn der größer ist als 250 die meldung auszugeben.

                Vielen vielen dank!

                Sei froh dass ich keinen Bock auf arbeiten habe ;)

                Okay ;) danke!

                1. Kurze erfolgsmitteilung ;)
                  es hat geklappt!
                  Hab den Formular Inhalt mit if (document.form1.userDial.value > 250) noch ausgelesen (wenn man das so nennen kann) und es klappt jetzt perfekt!

                  Vielen Dank!

                  1. Kurze erfolgsmitteilung ;)
                    es hat geklappt!

                    Das erfreut doch :)

                    Hab den Formular Inhalt mit if (document.form1.userDial.value > 250) noch ausgelesen (wenn man das so nennen kann) und es klappt jetzt perfekt!

                    Jeap, was "document.form1.userDial.value" anbelangt kann man das so nennen.

                    Wenn Du die if-Abfrage im onChange selbst händelst oder den Inhalt im Funktionsaufruf übergibst, dann kannst Du alternativ zu "document.form1.userDial.value" auch einfach "this.value" schreiben.

                    Das spart dann wieder ein wenig lästiges tippen ;)

                    Vielen Dank!

                    Nichts zu Danken!

                    Cheers Chris

  2. Hallo twegele.

    Und hab folgendes Problem, wenn in meinem Feld eine Eingabe gemacht wird, darf diese nicht größer als 250 sein. Wenn die eingabe größer als 250 ist würd ich gern ein alert fenster öffnen.

    Wenn du auf das alert verzichten könntest, wäre maxlength dein Freund.

    Ansonsten eben wie chr..itz schon geraten hat mittels onchange-Eventhandler die Länge des Inhalts abfragen.

    Gruß, Ashura

    --
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
    30 Days to becoming an Opera8 Lover -- Day 19: Notes
    Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
    [Deshalb frei! - Argumente pro freie Software]