Ajax: TextBox-Focus-Problem gelöst?

09/04/2008 - 18:40 von Patrick Finger | Report spam
Hallo Group

Ich kàmpfe mit dem Problem, dass eine Textbox in einem Update-Panel den
Focus verliert.

Das Problem wurde vielerorts (auch hier) diskutiert, doch habe ich keine
zufriedenstellende Lösung finden können.

Mein Problem: In einem Update-Panel befinden sich zig Textboxen. Wird
eine Eingabe geàndert (onkeyup, onblur), so startet das 200ms
zeitversetzt (javascript window.setTimeout) auf dem Server eine
zeitintensive Berechnung (1-2s). Danach werden die errechneten Werte
angezeigt. In dieser Zeit füllt der User bereits andere Felder aus.

Meine bisher beste Lösung:
Jede Textbox schreibt ihre ID bei "onfocus" in ein hiddenField.
Beim PageLoad rufe ich ScriptManager.setFocus() mit dieser ID auf damit
das Feld den Focus zurückgewinnt.

Damit ist der cursor am Anfang vom Textfeld.. mittels onfocus kann ich
den Cursor auch ans Ende setzen was aber auch falsch ist: Der Cursor
sollte genau dort sein wo er war: am Anfang, am Ende oder mitten drin in
der Textbox.

Hat da jemand eine Idee?

Liebe Grüsse
 

Lesen sie die antworten

#1 Thomas Bandt
09/04/2008 - 19:44 | Warnen spam
Patrick Finger schrieb:
Meine bisher beste Lösung:
Jede Textbox schreibt ihre ID bei "onfocus" in ein hiddenField.
Beim PageLoad rufe ich ScriptManager.setFocus() mit dieser ID auf damit
das Feld den Focus zurückgewinnt.



Gute Idee ... gleich mal notieren.

Damit ist der cursor am Anfang vom Textfeld.. mittels onfocus kann ich
den Cursor auch ans Ende setzen was aber auch falsch ist: Der Cursor
sollte genau dort sein wo er war: am Anfang, am Ende oder mitten drin in
der Textbox.



Imho keine Chance. Ich wüsste zumindest nicht, wie man
die Position des Cursors in einem Formularelement
auslesen und setzen könnte (JS-seitig), und das wàre die
Voraussetzung hierfür.

Gruß, Thomas [MVP ASP/ASP.NET]
http://www.69grad.de - Beratung, Entwicklung
http://www.dotnetjob.de - .NET-Stellenbörse
https://www.xing.com/net/asp.net/ - ASP.NET bei XING
http://blog.thomasbandt.de - Thomas goes .NET

Ähnliche fragen