2010-09-09 168 views
1

我有這個顯示輸入文本的textarea,但是當行數超過textarea的大小和寬度時,用戶必須向下滾動以查看他們最後輸入的內容。使用Javascript自動滾動<textarea>

我希望textarea在每次按下輸入按鈕時都設置在底部。

我試過以下,但我不能得到它的工作:

function inputKeyDown(evt, input) {  
    if (evt.keyCode == 13) {  
     var textarea = document.getElementById("textarea"); 
     textarea.value += "\n" + ">" + " " + input.value; 
     input.value = ""; 
     return false;  
    } 
    var elem = document.getElementById('textarea'); 
    elem.scrollTop = elem.scrollHeight;  
} 

,然後我稱之爲<input onKeyDown="return keyDown(event, this);" ...>

功能的keyDown任何想法,爲什麼沒有workie?

+0

請仔細閱讀問題表單旁邊的「如何格式化」框,以瞭解如何正確格式化代碼和內嵌代碼。 – 2010-09-09 21:36:07

回答

4

嘗試以下操作:

textarea.scrollTop = textarea.scrollHeight - textarea.clientHeight; 
0

這取決於你在尋找什麼樣的投入,但迫使光標回到底部可能是一個嚴重的可用性問題。如果你需要一個文本,可自動擴展,看看像這樣的現有解決方案jQuery plugin

我真的不知道,如果這是你想要什麼,但看看這個:http://jsfiddle.net/yV76p/

var textarea = document.getElementById("textarea"); 

textarea.onkeyup = function(evt) { 
    this.scrollTop = this.scrollHeight; 
} 
+0

嗨怡,您鏈接到的解決方案不顯示textarea展開。您可能想要檢查代碼是否正確 – 2012-02-18 08:53:26

+0

@ HelenNeely仔細閱讀,解決方案回答OP如何讓textarea在按下按鍵時滾動到底部的問題。它不會自動擴展textarea,因爲這不是OP想要的,但是如果你想要,你可以看看jQuery插件的鏈接 – 2012-02-18 09:31:00