我有一个文本区域,我想检查光标是在开头还是结尾(我不需要当前位置)。
有人知道一个简单的 jQuery 解决方案吗?
提前致谢!
彼得
我有一个文本区域,我想检查光标是在开头还是结尾(我不需要当前位置)。
有人知道一个简单的 jQuery 解决方案吗?
提前致谢!
彼得
假设你的意思是一个<input type="text">
而不是一个文本区域,这里是一个非 jQuery 解决方案(你仍然可以使用你的 jQuery 代码)。它几乎肯定会比 jQuery 插件更少的代码。
2011 年 11 月 12 日更新
话虽如此,我为他的这种任务开发了一个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);
是的,使用这个很棒的 jQuery 插件。
需要更多信息?带着更多问题回到这里:)
更新
与插件相关的原始博客文章已关闭。
感谢返航机的强大功能,您仍然可以查看它。
http://web.archive.org/web/20080620163228/http://blog.0xab.cd/jquery-plugin---fieldselection
上帝,我喜欢那个网站。