每次点“重置”按钮后页面焦点都会跑到最上方,用户正在发帖,点重置按钮想清空内容重新输入,可是点了按钮还得拉滚动条到页面下方(文本域的输入在页面最下方)。有什么办法可以点重置按钮后清空文本域,页面焦点不发生变化?是不是要用到Ajax技术??JavaScript代码为    <script type="text/javascript">
    function ResetText(){
      document.getElementById('newtextarea').Value = '';
      }
    </script>
HTML代码为 内容:</label><textarea rows="1" cols="1" id="newtextarea"></textarea></p>
<asp:Button ID="btnsubmit" runat="server" Text="发表" />
<asp:Button ID="btnreset" runat="server" Text="重置"  />
后台C#代码为 protected void Page_Load(object sender, EventArgs e)
{
    btnreset.Attributes.Add("onClick", "ResetText()");
}

解决方案 »

  1.   

    你不要通过ASPX内置的功能实现就用,说不定页面已经提交过一次,
    试一下这样:
    <asp:Button ID="btnsubmit" runat="server" Text="发表"  OnClientClick="ResetText()"/>
     protected void Page_Load(object sender, EventArgs e)
    {
        //btnreset.Attributes.Add("onClick", "ResetText()");  //清空
    }
      

  2.   

    试过了,用OnClientClick和在后台添加属性是一样的效果,页面焦点直接跳转到最上方。
    虽说清空功能是实现了,但是还要拖滚动条到最下面。。
      

  3.   

    这个用普通input就可以了<input type="button" value="重置" onclick="ResetText()" />
      

  4.   

      
     <script type="text/javascript">
        function ResetText(){
          document.getElementById('newtextarea').Value = '';
          document.getElementById('newtextarea').focus();
          }
        </script>
    这样再重置后就自动聚焦到输入框了。
      

  5.   


    这样是好了,可是我想用服务器控件实现不行吗?
    不用HTML控件加runat="server",就用ASP.NET的服务端控件。
    可能是要向服务器发出请求,服务器再相应返回页面造成的。
      

  6.   

    你用一些http分析工具看看页面有无提交,如果有,那就查一下怎么让表单不提交,例如return false什么的。
      

  7.   


    分析工具是类似httpwatch之类的吗
    ASP.NET服务端控件的button不能设置type,不会默认就是submit吧,那岂不是点哪个按钮都提交了。。我点前面的发表按钮也是重新焦点移动到页面最上方,我的发表按钮onclick事件还什么都没写。
     <asp:Button ID="btnsubmit" runat="server" Text="发表" />
      

  8.   

    清空后让焦点在文本域就可以了啊
    document.getElementById('newtextarea').focus();
      

  9.   

    lz,你调试下看看,我估计你页面刷新了。
    试下在page_load时间里面加这么句:page.MaintainScrollPositionOnPostBack=true;记录客户端滚动条的位置。
      

  10.   

    document.getElementById("<%='newtextarea'.ClientID %>");服务器控件 和加了runat="server"  的都要用上面的 进行去值 
    <asp:Button ID="btnsubmit" runat="server" Text="发表" />
      

  11.   

    document.getElementById("<%=newtextarea.ClientID %>");多了2个引号
      

  12.   

    ie8 中也有debug 可以调试js脚本 一步步做着看哪一步错了 debug 好像要下载
      

  13.   


    newtextarea 是文本域,并不是服务器控件。我的button才是服务器控件。
      

  14.   

    问题已经解决了,谢谢大家。因为服务端控件默认类型为提交表单,所以会刷新页面。
    设置按钮的UseSubmitBehavior属性为false后正常。