Cheatah: Formulare: Endlosschleife bei alert

Beitrag lesen

Hi,

Mit JavaScript kannst Du z.B. onChange prüfen, ob der Wert eine Zahl ist (sinngemäß "if (value == value*1)" müßte klappen), und andernfalls den Fokus zurück auf das Eingabefeld setzen und evtl. eine Meldung ausgeben (Vorsicht bei alert, das kann bei einem unbedarften User schnell zu einer Quasi-Endlosschleife führen).

Was meinst du denn mit unbedarften Usern?

ich stell mir das in etwa so vor:

Der Browser des Benutzers feuert sein onChange sofort bei der Änderung, nicht erst (wie Netscape), wenn das Feld den Fokus verliert - das als Voraussetzung. Nur gibt er z.B. "123x" ein - das "x" wird registriert, ein alert ausgegeben, der Fokus wieder ins Feld gesetzt (was für Browser notwendig ist, die eben erst onBlur auf onChange prüfen), und ausirgendwelchen Gründen landet der Cursor damit am Anfang des Eingabefeldes.

Bis hierhin noch kein Problem. Nun drückt der unbedarfte User aber "Entf", die "1" wird gelöscht, onChange feuert, das "x" steht immer noch da, ein alert wird ausgegeben. Der Benutzer ergänzt die gelöschte "1", onChange feuert, das "x" steht immer noch da, ein alert... Und so weiter. Wenn der Benutzer also nicht _während_ der Warnmeldung ändern kann (z.B. mit prompt()), kann das ganze ziemlich unkomfortabel sein. Nicht unbedingt endlos, aber sehr nervig.

Cheatah