1

首先,你们中的一些人可能会注意到我在删除这个问题后重新发布了这个问题。这是因为它被一个懒得检查的人错误地标记为重复——他链接的问题是关于一个<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>

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

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

4

3 回答 3

2

这对我有用。

function caek() {
    txtArea = $('textarea[name=txt1]');
    txtArea.val("cake");
    txtArea.focus();    
    tmpStr = txtArea.val();
    txtArea.val('');
    txtArea.val(tmpStr);
}
于 2012-07-03T01:33:48.580 回答
2

这行得通。

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

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

于 2012-07-03T01:39:54.577 回答
1

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

这里有一个演示:

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

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

于 2012-07-03T01:30:56.147 回答