JQuery - 当光标聚焦时将光标放在textarea的末尾

时间:2012-07-03 01:27:20

标签: javascript jquery forms

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

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

<!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>

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

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

3 个答案:

答案 0 :(得分:2)

这对我有用。

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

答案 1 :(得分:2)

这很有效。

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

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

答案 2 :(得分:1)

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

这里有一个演示:

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

将开始和结束设置为相同的数字,然后将光标设置为该点(尽管它不会聚焦textarea,因此您必须在其中标记以查看效果)。在您的情况下,您需要将其设置为文本的长度。