Heim >Web-Frontend >js-Tutorial >Wie kann ich die Cursorposition in einem jQuery-Textbereich festlegen?

Wie kann ich die Cursorposition in einem jQuery-Textbereich festlegen?

DDD
DDDOriginal
2024-12-28 05:55:13194Durchsuche

How Can I Set the Cursor Position in a jQuery Text Area?

jQuery setzt Cursorposition im Textbereich

Herausforderung:

Benötigen Sie eine Methode, um die Cursorposition in einem Text festzulegen Bereich mit jQuery. Das gewünschte Verhalten besteht darin, den Cursor an einem bestimmten Offset zu positionieren, wenn das Feld fokussiert ist.

jQuery-Lösung:

$.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();
  }
};

Verwendung:

$('#input').focus(function() {
  $(this).setCursorPosition(4);
});

Dadurch würde der Cursor nach dem vierten Zeichen im Text positioniert Feld.

Alternative Lösung:

$.fn.selectRange = function(start, end) {
  if (end === undefined) {
    end = start;
  }
  return this.each(function() {
    if ("selectionStart" in this) {
      this.selectionStart = start;
      this.selectionEnd = end;
    } else if (this.setSelectionRange) {
      this.setSelectionRange(start, end);
    } else if (this.createTextRange) {
      var range = this.createTextRange();
      range.collapse(true);
      range.moveEnd("character", end);
      range.moveStart("character", start);
      range.select();
    }
  });
};

Dies ermöglicht eine vielseitigere Textauswahl, einschließlich der Auswahl einer Reihe von Zeichen:

$('#elem').selectRange(3, 5); // select a range of text
$('#elem').selectRange(3); // set cursor position

Das obige ist der detaillierte Inhalt vonWie kann ich die Cursorposition in einem jQuery-Textbereich festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn