Sandra: select() und focus() in Mozilla

Hallo zusammen,

ich möchte gerne den Value beim Verlassen eines Feldes prüfen. Bei einem negativen Ergebnis soll der Fokus wieder zurück ins Feld und der value selektiert werden. Ich mache das so:

<html><head><title>Test</title>
</head><body>
<form name="Testform" action="">
Das ist mein Test:<br>
<input type="text" size="40" name="Code" value="xxx" onblur="if(document.Testform.Code.value != 'abc'){alert('falsch');document.Testform.Code.focus(); document.Testform.Code.select();}">
<input type="text" size="40" name="Code1" value="xxx">
<input type="text" size="40" name="Code2" value="xxx" onblur="if(document.Testform.Code.value != 'abc'){alert('falsch');document.Testform.Code.focus(); document.Testform.Code.select();}">
<input type="text" size="40" name="Code3" value="xxx">
</form>
</body></html>

Im IE(6.0) funktioniert die Abfrage einwandfrei. Mozilla(1.6)/Mozilla Firefox(0.8)/Netscape(6.0/7.2) zeigen die Fehlermeldung an, setzen aber select() und focus() dann nicht mehr zurück ins Feld. Soll der Fokus in ein anderes Feld (siehe beim dritten Feld 'Code2') funktioniert es...

Was mache ich falsch? Oder geht das evt. gar nicht in Mozilla/NS?

Ich habe im Formusarchiv schon einen Beitrag zu diesem Problem gefunden, leider funktionierte das dortige Beispiel bei mir auch nicht: http://forum.de.selfhtml.org/archiv/2002/9/23472/#m129961

Danke für Eure Tipps! :-)

Gruß MissLilly

  1. hi,

    Im IE(6.0) funktioniert die Abfrage einwandfrei. Mozilla(1.6)/Mozilla Firefox(0.8)/Netscape(6.0/7.2) zeigen die Fehlermeldung an, setzen aber select() und focus() dann nicht mehr zurück ins Feld. Soll der Fokus in ein anderes Feld (siehe beim dritten Feld 'Code2') funktioniert es...

    bekommst du javascript-fehlermeldungen? siehe http://glasgoogle.de/

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hi wahsaga,

      bekommst du javascript-fehlermeldungen? siehe http://glasgoogle.de/

      Danke für den Link-Tipp. :-) Aber leider bringt uns der in diesem Fall nicht weiter. Es werden überhaupt keine Fehler oder Warnungen angezeigt. Das Fenster bleibt komplett leer. Also scheint mein Code korrekt zu sein.

      Ist mein Fehler denn überhaupt bei Dir/Euch reproduzierbar?
      Gruß Sandra

  2. Hi,

    ich möchte gerne den Value beim Verlassen eines Feldes prüfen. Bei einem negativen Ergebnis soll der Fokus wieder zurück ins Feld und der value selektiert werden.

    Nehmen wir an, Dein Besucher hat die Daten grade nicht parat, dann bleibt er in dem Input gefangen und muss seinen Browser abschiessen. Haeltst Du es wirklich fuer sinnvoll, _so_ zu ueberpruefen?

    Ueberpruefe, wenns schon clientseitig sein muss, die Daten lieber gesammelt vor dem Versenden.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Hi,

      Nehmen wir an, Dein Besucher hat die Daten grade nicht parat, dann bleibt er in dem Input gefangen und muss seinen Browser abschiessen. Haeltst Du es wirklich fuer sinnvoll, _so_ zu ueberpruefen?

      An dieser Stelle "ja". Bei dem Feld handelt es sich, anders als im vereinfachten Beispiel, um ein Feld, in dem der Benutzer ein Datum eintragen soll. Mit diesem Wert sollen im folgenden gleich weitere Berechnungen angestellt werden (z.B. die Berechnung einer Dauer, die ihm 'benutzerfreundlich' gleich aktualisiert angezeigt werden soll). Daher ist es wichtig, dass es sich um ein gültiges Format handelt. Gibt der Benutzer also z.B. 'e1.09.2004' ein, soll er sofort aufgefordert werden, das Datum zu ändern, da es in diesem Fall Fehler auslösen würde. Um ihm einen weiteren Klick zu ersparen, möchte ich gerne den Fokus wieder an die richtige Stelle setzen.

      Gruß,
      Sandra

      1. Hi,

        Nehmen wir an, Dein Besucher hat die Daten grade nicht parat, dann bleibt er in dem Input gefangen und muss seinen Browser abschiessen. Haeltst Du es wirklich fuer sinnvoll, _so_ zu ueberpruefen?

        An dieser Stelle "ja".

        Nochmal die Frage: Was tut Dein Besucher, wenn er die Prozedur abbrechen will? Er ist gezwungen, seinen Browser zu killen! Das ist keine Erleichterung, sondern eine Zwangsmassnahme, und ein deutliches Beispiel, wie man solche Ueberpruefungen _keinesfalls_ machen sollte.

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
        1. Hi,

          Nochmal die Frage: Was tut Dein Besucher, wenn er die Prozedur abbrechen will? Er ist gezwungen, seinen Browser zu killen! Das ist keine Erleichterung, sondern eine Zwangsmassnahme, und ein deutliches Beispiel, wie man solche Ueberpruefungen _keinesfalls_ machen sollte.

          Der Benutzer wird ja wohl imstande sein, ein gültiges Datum einzugeben. :-) Außerdem vergaß ich zu erwähnen, dass beim erneuten Selektieren und Fokussieren der alte also_richtige_Wert wieder eingetragen wird (das ist entweder ein vorbelegter Wert oder aber nichts). Ist er sich mit seiner Eingabe nicht sicher, kann er jetzt jederzeit das Feld verlassen, andere Eingaben machen und das Datum in aller Ruhe nachschlagen und später eintragen. Zudem handelt es sich bei meiner Anwendung um eine Intranet-Anwendung, bei der es darum geht, z.B. einen Termin einzutragen. Wann der stattfinden soll, wird mein Besucher doch hoffentlich wissen :-)

          Ich danke Dir übrigens sehr für Deine Ratschläge. Allerdings bin ich an ein paar Vorgaben gebunden, die ich auch gerne umsetzen würde (wenn denn möglich). Was mich also an dieser Stelle doch noch sehr interessiert ist, ob es denn nun für mein 'Problem' eine Lösung gibt?!

          Viele Grüße
          Sandra