Jquery - 如果光标位于文本字段的开头/结尾

时间:2010-10-11 08:14:42

标签: javascript jquery textarea selection textselection

我有一个textarea,我想检查光标是在开头还是在结尾(我不需要当前位置)。
 有人知道一个简单的jQuery解决方案吗?

提前致谢!
彼得

2 个答案:

答案 0 :(得分:8)

假设你的意思是<input type="text">而不是textarea,这里是一个非jQuery解决方案(你仍然可以使用你的jQuery代码)。它几乎可以肯定是比jQuery插件更少的代码。

2011年11月12日更新

话虽如此,我已经为他的任务开发了a jQuery plug-in,它确实比下面的代码更大。

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);

答案 1 :(得分:2)

是的,请使用此awesome jQuery plugin

需要更多信息?回到这里有更多问题:)

<强>更新
与该插件相关的原始博客文章已关闭。

感谢Wayback机器的 Awesome Power ,您仍然可以查看它。

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

上帝,我喜欢那个网站。