Jak uzyskać pozycję kursora w polu tekstowym?

Mam obszar tekstowy i chciałbym wiedzieć, czy jestem w ostatnim wierszu w obszarze tekstowym, czy w pierwszym wierszu w obszarze tekstowym za pomocą kursora z JavaScript.

Pomyślałem o uchwyceniu pozycji pierwszego znaku nowej linii i ostatniego znaku nowej linii, a następnie zajęciu pozycji kursora.

var firstNewline = $('#myTextarea').val().indexOf('\n');
var lastNewline = $('#myTextarea').val().lastIndexOf('\n');

var cursorPosition = ?????;

if (cursorPosition < firstNewline)
    // Jestem na pierwszej linii.
else if (cursorPosition > lastNewline)
    // Jestem na ostatniej linii.

Czy istnieje lepsze rozwiązanie?

1 odpowiedź

Jeśli nie ma wyboru, możesz użyć właściwości .selectionStart lub .selectionEnd .

var cursorPosition = $('#myTextarea').prop("selectionStart");

Wydaję mi się, że jest gdzieś biblioteka, która jest przeznaczona do pobierania i ustawiania selekcji / pozycji kursora w elementach wejściowych. Może warto poszukać :)

Pozdrawiam

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.