jQuery:在没有浏览器特定代码的情况下获取输入中文本的光标位置?

jQuery:在没有浏览器特定代码的情况下获取输入中文本的光标位置?,jquery,input,cursor-position,Jquery,Input,Cursor Position,在jQuery中,是否有任何方法可以在不执行特定于浏览器的代码的情况下获取文本输入中的当前光标位置 例如: <input id="myTextInput" type="text" value="some text" > 光标在“某些文本”的“x”之后,我可以得到“8”?刚刚在浏览时遇到,可能会对您有所帮助。您也可以将其用于文本框。如果没有一些特定于浏览器的代码,则无法执行此操作,因为它们实现的文本选择范围略有不同。然而,有一些插件将其抽象出来。对于你想要的东西,这里有 为了让您

在jQuery中,是否有任何方法可以在不执行特定于浏览器的代码的情况下获取文本输入中的当前光标位置

例如:

<input id="myTextInput" type="text" value="some text" >


光标在“某些文本”的“x”之后,我可以得到“8”?

刚刚在浏览时遇到,可能会对您有所帮助。您也可以将其用于文本框。

如果没有一些特定于浏览器的代码,则无法执行此操作,因为它们实现的文本选择范围略有不同。然而,有一些插件将其抽象出来。对于你想要的东西,这里有

为了让您的代码获得该职位,您可以执行以下操作:

$("#myTextInput").bind("keydown keypress mousemove", function() {
  alert("Current position: " + $(this).caret().start);
});

.

关于Jquery插入符号插件的警告


它将与(反之亦然)冲突。幸运的是,屏蔽输入插件包含一个自己的caret()函数,您可以使用它来满足您的基本需求-$(element.caret()).begin或.end

使用语法
text\u元素。selectionStart
我们可以根据
text\u元素中所选文本的第一个字符的索引来获取文本选择的起始位置。value
如果我们想获得选择中最后一个字符的索引,我们必须使用
text\u元素。选择end

按如下方式使用:

<input type=text id=t1 value=abcd>
<button onclick="alert(document.getElementById('t1').selectionStart)">check position</button>

检查位置

我给您提供了

相关信息:抱歉,输入字段在开始时没有显示。这应该能告诉我想要什么。这个Jquery插入符号链接已关闭。指向Google Code@nickcraver上的jCaret项目的链接无法处理我的代码。我是否需要添加另一个源代码,比如是的,您需要jQuery。我相信现在的链接是:而且,在按下向下/向上键的情况下,JSFIDLE编号看起来并不正确。光标移到文本框的末尾,但该值并不代表这样移动到输入的开始/结束。为什么要麻烦将el.value放入var val?将这样一个显式的术语缩写为只使用一次似乎只是混淆了本来不错的代码(我还没有运行它:)@LeeGee-true,从而减少了代码。很好的解决方案!它在IE8中不起作用,但谁在乎呢!不幸的是,该网站已无法访问。你还记得实施涉及到什么吗?