Cursor in Inputfeld setzen
snorri
- javascript
Hi alle,
ich möchte per JavaScript den Textcursor an das Ende des Inhalts eines bestimmten Inputfeldes setzen. Hat jemand einen kurzen Tipp für mich, wie man das macht?
-- snorri
Hi!
ich möchte per JavaScript den Textcursor an das Ende des Inhalts eines bestimmten Inputfeldes setzen.
Mit Hilfe von Javascript und der Eigenschaft charAt sollte es dir möglich sein, Zeichen an bestimmten Cursorpositionen in deinem Eingabefeld einzufügen bzw. den Cursor zu platzieren.
Schöner Gruß,
rob
Hm, das hilft mir noch nicht recht weiter. Die Position am Ende des Inhalts kann ich ja bequem mit string.length ermitteln.
Aber wie lautet der JavaScript-Befehl zum setzen des Textcursors an diese Stelle?
-- snorri
Aber wie lautet der JavaScript-Befehl zum setzen des Textcursors an diese Stelle?
Du kennst google: Javascript setzen Textcursor
Struppi.
Hi Struppi,
» Du kennst google
Ja, für diesen Tonfall muss man das Selfhtml-Forum einfach lieben ... :-)
Danke für den Link jedenfalls, er hat mein Problem gelöst, wenn auch meine Frage nicht ganz beantwortet (Eine selection zu erstellen reicht mir in diesem Fall, aber wie man den Cursor platziert habe ich dem Code noch nicht entnehmen können, da die betreffende Funktion move() anscheinend nicht auf selfhtml dokumentiert ist ...)
-- snorri
hi,
» Du kennst google
Ja, für diesen Tonfall muss man das Selfhtml-Forum einfach lieben ... :-)
Ich liebe es eigentlich weniger dafür, dass die Leute, die zur eigenständigen Nutzung dieses Werkzeuges zu faul oder ... sind, sich dann auch noch über den "Tonfall" beschweren müssen ...
Danke für den Link jedenfalls, er hat mein Problem gelöst, wenn auch meine Frage nicht ganz beantwortet (Eine selection zu erstellen reicht mir in diesem Fall, aber wie man den Cursor platziert habe ich dem Code noch nicht entnehmen können, da die betreffende Funktion move() anscheinend nicht auf selfhtml dokumentiert ist ...)
Ja kennst du nun Google, oder nicht ...?
http://www.html-world.de/program/js_o_tra.php#methoden
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/move.asp
gruß,
wahsaga
Ich liebe es eigentlich weniger dafür, dass die Leute, die zur eigenständigen Nutzung dieses Werkzeuges zu faul oder ... sind, sich dann auch noch über den "Tonfall" beschweren müssen ...
Wie gut dass ich nicht so einer bin ... :-) sondern nur nicht die richtigen Suchbegriffe gewusst habe, um das zu finden, was ich suchte.
Die Methode collapse() klingt doch genau nach dem, was ich will: Den Cursor an das Ende des Inhalts des Inputfeldes zu setzen. Anscheinend verstehe ich aber noch nicht recht, wie man sie anwendet ... so tut sich jedenfalls nichts:
<input type="Text" id="meinEingabefeld" value="blafasel">
<a href="javascript:document.all.meinEingabefeld.createTextRange().collapse(true); document.all.meinEingabefeld.focus();">test</a>
Der Code stammt von der verlinkten Seite ... ich habe es auch mal mit getElementById statt document.all versucht, das bringt mich auch nicht weiter.
Jemand ne Idee?
-- snorri
hi,
Die Methode collapse() klingt doch genau nach dem, was ich will: Den Cursor an das Ende des Inhalts des Inputfeldes zu setzen.
Nur dein Aufruf der Methode mit dem Parameter true klingt nicht danach.
gruß,
wahsaga
Naja, wenn das eine geht, geht das andere auch. Aber ich habe es auch mit "false" getestet.
Ist aber wurscht, ich habe es ja schon mit move() hinbekommen.
Danke jedenfalls!
-- snorri
Du kennst google
Ja, für diesen Tonfall muss man das Selfhtml-Forum einfach lieben ... :-)
Gell.
Danke für den Link jedenfalls, er hat mein Problem gelöst, wenn auch meine Frage nicht ganz beantwortet (Eine selection zu erstellen reicht mir in diesem Fall, aber wie man den Cursor platziert habe ich dem Code noch nicht entnehmen können, da die betreffende Funktion move() anscheinend nicht auf selfhtml dokumentiert ist ...)
ich hab dann nochmal google bemüht und bvin auf der zweiten Seite fündig geworden: http://www.google.de/search?q=cursor+position+javascript&num=20&hl=de&lr=&ie=UTF-8&start=20&sa=N
Du auch?
Struppi.
Hallo Struppi.
Danke für den Link jedenfalls, er hat mein Problem gelöst, wenn auch meine Frage nicht ganz beantwortet (Eine selection zu erstellen reicht mir in diesem Fall, aber wie man den Cursor platziert habe ich dem Code noch nicht entnehmen können, da die betreffende Funktion move() anscheinend nicht auf selfhtml dokumentiert ist ...)
ich hab dann nochmal google bemüht und bvin auf der zweiten Seite fündig geworden: http://www.google.de/search?q=cursor+position+javascript&num=20&hl=de&lr=&ie=UTF-8&start=20&sa=N
Dieser Link kann in Zukunft (oder je nach Einstellung) völlig andere Ergebnisse bringen, als du sie siehst. Verlinke besser konkrete Seiten.
Einen schönen Mittwoch noch.
Gruß, Mathias
Ich mag mich ja täuschen, aber damit finde ich eine Reihe von Seiten, die sehr hilfreich sind, wenn ich Text an der aktuellen Cursorposition einfügen will -- aber keine, die mir sagt, wie ich diese Cursorposition _ändere_.
-- snorri
Ich mag mich ja täuschen, aber damit finde ich eine Reihe von Seiten, die sehr hilfreich sind, wenn ich Text an der aktuellen Cursorposition einfügen will -- aber keine, die mir sagt, wie ich diese Cursorposition _ändere_.
http://parentnode.org/javascript/working-with-the-cursor-position/
Struppi.
Jetzt hab ichs gefunden (weiter unten, Nummer 5). "character" ist dabei ein Parameter (kein Platzhalter für einen eigenen Begriff, wie ich zunächst dachte), wie wahsaga's Link erklärt: http://www.html-world.de/program/js_o_tra.php#methoden
So klappts dann mit dem Sprung zum Inhaltsende:
<script language="JavaScript">
function testit() {
var range = document.getElementById('meinEingabefeld').createTextRange();
range.move("character", document.getElementById('meinEingabefeld').value.length);
range.select();
}
</script>
<input type="Text" id="meinEingabefeld" value="blafasel">
<a href="javascript:testit()">test</a>
Dank an alle!
-- snorri
auf der von mir verlinkten Seite ist eine Funktion die setCaretTo() heißt und Browserübergreifend den Cursor positioniert.
Struppi.