【发布时间】:2011-12-06 10:45:30
【问题描述】:
我有一个 textarea,我想知道我是在 textarea 的最后一行还是在 textarea 的第一行,我的光标在 JavaScript 中。
想到先抓取第一个换行符和最后一个换行符的位置,然后抓取光标的位置。
var firstNewline = $('#myTextarea').val().indexOf('\n');
var lastNewline = $('#myTextarea').val().lastIndexOf('\n');
var cursorPosition = ?????;
if (cursorPosition < firstNewline)
// I am on first line.
else if (cursorPosition > lastNewline)
// I am on last line.
- 是否可以在文本区域内抓取光标位置?
- 您有更好的建议来确定我是在 textarea 的第一行还是最后一行?
首选 jQuery 解决方案,除非 JavaScript 一样简单或更简单。
【问题讨论】:
-
你看到这里的解决方案了吗:blog.vishalon.net/index.php/…
-
这将引发错误,因为
indexOf和 lastIndexOf` 函数不是 val` 函数的方法。你应该使用这个(尽管你根本不应该使用那个代码):var firstNewline = String($("#myTextarea").val()).indexOf('\n'); -
cursor 是鼠标指针,caret 是文本控制器所在的指示器。
-
@John 感谢您的描述。更进一步,从概念上讲,插入符号表示文本中的位置,而光标表示任何内容中的位置。关于图形界面,它们具有不同的用途,并且通常具有不同的物理渲染。
标签: javascript jquery html input textarea