Wie setzen Sie die Cursorposition in einem Textfeld mit jQuery? Ich habe ein Textfeld mit Inhalt, und ich möchte die Benutzer-Cursor an einem bestimmten Offset positioniert werden, wenn sie auf das Feld konzentrieren. Der Code sollte in etwa 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 Code von CMS so geändert, dass er mit jQuery wie folgt 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);