Heim > Web-Frontend > js-Tutorial > Wie legt man mit jQuery die Cursorposition in Textbereichen fest?

Wie legt man mit jQuery die Cursorposition in Textbereichen fest?

DDD
Freigeben: 2024-12-08 14:14:10
Original
737 Leute haben es durchsucht

How to Set the Cursor Position in Text Areas Using jQuery?

Einstellen der Cursorposition in Textbereichen mit jQuery

Wenn Sie möchten, dass sich Benutzer auf einen bestimmten Teil eines Textfelds konzentrieren, müssen Sie den Cursor möglicherweise auf positionieren einen bestimmten Versatz innerhalb des Feldes. Um dies mit jQuery zu erreichen, können Sie eine setCursorPosition-Funktion implementieren.

$.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();
  }
};
Nach dem Login kopieren

Wenn diese Funktion vorhanden ist, können Sie die Cursorposition festlegen, indem Sie sie mit dem gewünschten Offset aufrufen:

$("#input").focus(function() {
  $(this).setCursorPosition(4);
});
Nach dem Login kopieren

Wenn in diesem Beispiel das #Eingabefeld den Fokus erhält, wird der Cursor nach dem vierten Zeichen positioniert (von 0 an gezählt).

Ein alternativer Ansatz ist die Verwendung von die in der akzeptierten Antwort bereitgestellte selectRange-Funktion:

$.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();
    }
  });
};
Nach dem Login kopieren

Mit dieser Funktion können Sie den Cursor positionieren und einen Textbereich auswählen:

$("#elem").selectRange(3, 5); // select a range of text
$("#elem").selectRange(3); // set cursor position
Nach dem Login kopieren

Diese Lösungen bieten verschiedene Methoden zum Festlegen die Cursorposition und manipulieren Sie die Textauswahl in Textfeldern mit jQuery.

Das obige ist der detaillierte Inhalt vonWie legt man mit jQuery die Cursorposition in Textbereichen fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage