Jquery - если позиция курсора в начале / конце в текстовом поле - PullRequest
7 голосов
/ 11 октября 2010

У меня есть текстовое поле, и я хочу проверить, находится ли курсор в начале или в конце (мне не нужна текущая позиция).
Кто-нибудь знал простое решение jQuery?

Заранее спасибо!
Питер

Ответы [ 2 ]

8 голосов
/ 11 октября 2010

Предполагая, что вы имеете в виду <input type="text">, а не текстовую область, вот решение, не относящееся к jQuery (которое вы все еще можете использовать с вашим кодом jQuery).Это почти наверняка будет меньше кода, чем плагин jQuery.

ОБНОВЛЕНИЕ 12 ноября 2011

Сказав это, я разработал плагин jQuery.в только для своего рода задач, и это действительно больше, чем код ниже.

var textInput = document.getElementById("your_id"), val = textInput.value;
var isAtStart = false, isAtEnd = false;
if (typeof textInput.selectionStart == "number") {
    // Non-IE browsers
    isAtStart = (textInput.selectionStart == 0);
    isAtEnd = (textInput.selectionEnd == val.length);
} else if (document.selection && document.selection.createRange) {
    // IE <= 8 branch
    textInput.focus();
    var selRange = document.selection.createRange();
    var inputRange = textInput.createTextRange();
    var inputSelRange = inputRange.duplicate();
    inputSelRange.moveToBookmark(selRange.getBookmark());
    isAtStart = inputSelRange.compareEndPoints("StartToStart", inputRange) == 0;
    isAtEnd = inputSelRange.compareEndPoints("EndToEnd", inputRange) == 0;
}

alert("At start: " + isAtStart + ", at end: " + isAtEnd);
2 голосов
/ 11 октября 2010

Да, используйте этот потрясающий плагин jQuery .

Нужна дополнительная информация?Вернитесь сюда с дополнительными вопросами:)

Обновление Исходное сообщение в блоге, связанное с этим плагином, недоступно.

Благодаря Потрясающей мощи машины обратного хода, вы все равно можете просмотреть его.

http://web.archive.org/web/20080620163228/http://blog.0xab.cd/jquery-plugin---fieldselection

Боже, я люблю этот сайт.

...