0

我有一个在 c# 中动态更改的文本区域,方法是这样做:

TextBox1.Text=(String)Application["chat"]; 

当文本对于文本区域来说太大时,我希望滚动始终位于底部。我试图在 JS(jquery) 中使用 change 事件来做到这一点。

$("#TextBox1").change(function () {
    alert("alert");
    // $('#TextBox1').scrollTop($('#TextBox1')[0].scrollHeight);
});

这是我在 Javascript 中使用的代码。问题是事件不会发生,即使文本区域中的文本发生更改,我已经通过使用不执行的警报对其进行调试来证明这一点。

4

3 回答 3

1
var textarea = document.getElementById('textarea_id');
textarea.scrollTop = textarea.scrollHeight;
于 2012-11-06T08:22:42.010 回答
0

关于您的事件未触发的问题:如果这是 ASP.NET 网络表单,则文本框(输入)的客户端 ID 不太可能是 TextBox1。

在生成的页面上查看源代码并检查 ID 呈现的内容并相应地更新您的 JS。

于 2012-11-06T08:23:59.410 回答
0

您可以使用此代码将 textarea 向下滚动到底部:

$("#TextBox1").scrollTop($("#TextBox1").height());​

如果你想向下滚动,当它的内容发生变化时,使用这个:

$("#TextBox1").change(function(){
    $(this).scrollTop($(this).height());​
});
于 2012-11-06T08:49:39.217 回答