Wie setzen Sie die Cursorposition in einem Textfeld mit jQuery? Ich habe ein Textfeld mit Inhalt und möchte, dass der Benutzercursor an einem bestimmten Versatz positioniert wird, wenn er sich auf das Feld konzentriert. Der Code sollte ungefähr so aussehen:
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
Wie würde die Implementierung dieser setCursorPosition-Funktion aussehen? Wenn Sie ein Textfeld mit dem Inhalt abcdefg hätten, würde dieser Aufruf dazu führen, dass der Cursor wie folgt positioniert wird: abcd ** | ** efg.
Java hat eine ähnliche Funktion, setCaretPosition. Gibt es eine ähnliche Methode für Javascript?
Update: Ich habe den CMS-Code so geändert, dass er mit jQuery funktioniert:
new function($) {
$.fn.setCursorPosition = function(pos) {
if (this.setSelectionRange) {
this.setSelectionRange(pos, pos);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
if(pos < 0) {
pos = $(this).val().length + pos;
}
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
}(jQuery);
$(this).get(0).setSelectionRange)
? Sie wissen, dass das genau das gleiche ist wiethis.setSelectionRange
, nur langsamer und schwerer zu lesen, oder? jQuery tut hier buchstäblich nichts für Sie.