2012-07-03 43 views
1

首先,你们中的一些人可能会注意到我在删除它后重新发布了这个问题。这是因为它被一个没有麻烦检查的人错误地标记为重复 - 他所关联的问题是关于一个元素;该解决方案不适用于textareas。JQuery--将光标放在textarea的末尾,当它聚焦于

无论如何,考虑下面的代码:

<!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结尾?非内联解决方案将是最佳的,但任何事情都可以。

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

回答

2

这对我有用。

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

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

这里有一个演示:

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

设置开始和结束相同数量,它就会将光标移动到这一点(虽然它不注重textarea的,所以你必须选项卡可以看到效果)。在你的情况下,你想把它设置为文本的长度。

+0

我必须使用插件d: – Bluefire

+0

该网站说,一个独立的版本在某些时候到来。但是它是开源的,所以你可能只需要取出你想要的代码即可。 :) – tangentstorm

相关问题