Hallo,
ich probiere gerade mit Javascript die Cursorposition an den Anfang eines Textfeldes zu setzen.
Ich habe mich an diesem Artikel hier orientiert:
http://parentnode.org/javascript/working-with-the-cu…
Und so sieht mein Code aus:
if(document.selection) {
/\* Internet Exploder \*/
obj.focus; /\* just to be sure \*/
var range = document.selection.createRange();
if(range.parentElement() == obj) {
range.move("character", 0);
range.select();
}
} else if(obj.selectionStart) {
/\* Gecko \*/
obj.setSelectionRange(0, 0);
}
Ich habe das ganze im Firefox 2.0 getestet, und obj ist auch die Referenz zum input-Objekt, und der Code im /* Gecko */ markierten Zweig wird auch ausgeführt.
Trotzdem bleibt der Cursor da wo er ist (am Ende des input-Felds).
Hat jemand eine Idee, woran das liegen könnte? Und wie man es behebt?
Grüße,
Moritz
Hallo Moritz,
das Thema interessiert mich auch sehr,
komme beim Testen aber nicht weiter, da mir offenbar ein Paar Kenntnisse in OOP fehlen, jedenfalls weiss ich nicht, wo die obj-Variable herkommt.
Bräuchte dazu ein komplettes kleines Programmchen nur mit den fraglichen Funktionen.
Auf der Linkseite bin ich wegen unzureichender Englischkenntnisse auch nicht durchgestiegen, aber dort sind ja auch nur Fragmente
Gruss Joachim
Hallo Moritz.
ich probiere gerade mit Javascript die Cursorposition an den
Anfang eines Textfeldes zu setzen.
Als defensiver Programmierer würde ich immer die
Methode testen, die ich nutzen möchte, also nicht
if(obj.selectionStart) { obj.setSelectionRange(0, 0); }
sondern:
if(obj.setSelectionRange) { obj.setSelectionRange(0,0); }
Ansonsten findest Du unter
http://www.faqts.com/knowledge_base/view.phtml/aid/1…
ein funktionierendes Script.
Gruß,
-Andreas.
Hallo,
das Thema interessiert mich auch sehr,
komme beim Testen aber nicht weiter, da mir offenbar ein Paar
Kenntnisse in OOP fehlen, jedenfalls weiss ich nicht, wo die
obj-Variable herkommt.
Die obj-Variable enthält den DOM-Node, das dem -Tag entspricht, und ich hole ihn mit mit
obj = $(node\_id);
Wobei die Funktion $ aus der Prototype-Bibliothek kommt: http://www.prototypejs.org/
Bräuchte dazu ein komplettes kleines Programmchen nur mit den
fraglichen Funktionen.
Damit kann ich dir leider nicht dienen ;-/
Wenn du willst kannst du dich durch von Code von http://sudokugarden.de/de/online/today wühlen, dort habe ich einen Eventhandler, der dafür sorgt, dass man mit den Pfeiltasten zwischen den Input-Feldern springen kann. Leider verhalten sich die Browser unterschiedlich bis merkwürdig was die Position angeht, in der der Cursor beim anspringen der Felder ist.
Grüße,
Moritz
Hallo,
Als defensiver Programmierer würde ich immer die
Methode testen, die ich nutzen möchte, also nicht
if(obj.selectionStart) { obj.setSelectionRange(0, 0);
}
sondern:
if(obj.setSelectionRange) { obj.setSelectionRange(0,0);
}
Hört sich sinnvoll an 
Vielleicht sollte ich mal ordentlich Javascript lernen, und mir solche Tricks aneignen 
Ansonsten findest Du unter
http://www.faqts.com/knowledge_base/view.phtml/aid/1…
ein funktionierendes Script.
Das Script funktioniert bei mir, die Funktion in meine Seite eingebaut funktioniert auch im Opera, nicht aber im Firefox.
Ich vermute, dass das an den komischen Eventhandlern liegt, ich muss da noch ein wenig mehr debuggen.
Vielen Dank,
Moritz