2012-07-03 44 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

相關問題