JQuery - 将光标放在文本区域的末尾,当光标聚焦时

JQuery - placing the cursor at the end of a textarea when it is focused on

本文关键字:光标 聚焦 区域 文本 JQuery      更新时间:2023-09-26

首先,你们中的一些人可能会注意到我在删除这个问题后转发了这个问题。这是因为它被懒得检查的人错误地标记为重复 - 他链接到的问题是一个<input>元素;该解决方案不适用于文本区域。

无论如何,请考虑以下代码:

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function caek() {
    $('textarea[name=txt1]').val("cake");
    $('textarea[name=txt1]').focus();
}
</script>
</head>
<body>
<div id="bar"></div>
<form name="frm1" id="cake">
<textarea name="txt1"></textarea>
</form>
<input type="button" value="Activate"
onclick="caek()">
</body>
</html>

当您运行它时,您会注意到光标被推到文本区域的开头,在文本之前。我怎样才能让它出现在所有文本之后,在文本区域的末尾?非内联解决方案将是最佳的,但任何事情都可以。

一个独立的解决方案(没有插件等)将是完美的。

这对

我有用。

function caek() {
    txtArea = $('textarea[name=txt1]');
    txtArea.val("cake");
    txtArea.focus();    
    tmpStr = txtArea.val();
    txtArea.val('');
    txtArea.val(tmpStr);
}

这有效。

$ta.text($ta.text()).focus()

演示:http://jsfiddle.net/elclanrs/WWsBa/

您可以使用 rangyinputs jQuery 插件以跨平台的方式执行此操作。

这里有一个演示:

http://rangyinputs.googlecode.com/svn/trunk/demos/textinputs_jquery.html

将开始和结束设置为相同的数字,它会将光标设置为该点(尽管它不会聚焦文本区域,因此您必须按 Tab 键进入它才能看到效果)。在您的情况下,您希望将其设置为文本的长度。