451 Stimmen

jQuery Cursor-Position im Textbereich festlegen

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);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X