【问题标题】:Jquery - If cursor position at the start/end in a textfieldJquery - 如果光标位置在文本字段的开始/结束处
【发布时间】:2011-04-23 16:51:51
【问题描述】:

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

提前致谢!
彼得

【问题讨论】:

  • 您是指<input type="text"> 还是<textarea>
  • 我的意思是 。文本框是当前单词吗?
  • 猜猜看。我永远不确定人们的意思。

标签: javascript jquery textarea selection textselection


【解决方案1】:

是的,使用这个awesome jQuery plugin

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

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

多亏了返程机的强大的力量,你仍然可以看到它。

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

上帝啊,我喜欢那个网站。

【讨论】:

  • 非常好!感谢您的快速答复!
  • 别担心@Peter,我希望插件能帮到你:)
  • 你能给我一个小例子如何使用吗?不幸的是,页面“blog.0xab.cd/jquery-plugin---fieldselection”已关闭:(
  • @Peter - 查看我的更新。您可以使用 Wayback 机器查看博客文章。
  • 回程机,好主意^^。谢谢!
【解决方案2】:

假设您的意思是 <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);

【讨论】:

  • 这个答案在 2016 年 1 月仍然有效吗?
  • @Jessica:当然,而且在可预见的未来几乎肯定会有效,因为selectionStartselectionEndstandardized。第二个分支仅适用于 IE 8 及更早版本,因此如果您不需要担心这些浏览器,可以将其删除。
  • 谢谢!你建议我支持 IE 8 及更早版本吗?
  • @Jessica:这真的取决于你的听众,但总的来说我不会说,特别是因为微软自己有recently stopped supporting older versions of IE
猜你喜欢
  • 2022-01-11
  • 1970-01-01
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
  • 2018-09-16
  • 2013-03-21
相关资源
最近更新 更多