Предполагая, что вы имеете в виду <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);