【问题标题】:Autoscroll to bottom of textarea自动滚动到文本区域底部
【发布时间】:2012-11-06 08:18:49
【问题描述】:

我有一个在 c# 中动态更改的文本区域:

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

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

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

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

【问题讨论】:

标签: c# jquery textarea onchange autoscroll


【解决方案1】:
var textarea = document.getElementById('textarea_id');
textarea.scrollTop = textarea.scrollHeight;

【讨论】:

  • 这行得通,谢谢。虽然我仍然不知道为什么更改事件不会触发。
  • 如果你使用 jQuery 为什么不使用 $ 而不是 document.getElementById?
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    您应该使用此代码将文本区域向下滚动到底部:

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

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

    $("#TextBox1").change(function(){
        $(this).scrollTop($(this).height());​
    });
    

    【讨论】:

      猜你喜欢
      • 2014-12-20
      • 2012-02-18
      • 2017-02-07
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 2012-05-21
      • 2011-09-30
      • 1970-01-01
      相关资源
      最近更新 更多