我的一个页aa.aspx//这是一段JS
function Search()
{
var obj7 = document.getElementById("textfield");
var tname = obj7.value;
window.open("bb.aspx?keyword=" + tname);
}
function onSubmit()
{
if(event.keyCode==13)
{
  Search();
}
}
//这是我页中的一个TEXTBOX
<form id="form1" runat="server"  method="post">
<asp:TextBox ID="textfield" runat="server" onkeypress="Submit();"></asp:TextBox>
</form>
我在textbox里面输入后,直接按回车,打开新页bb.aspx,但是不知道为什么本页aa.aspx会刷一下!
明明没有回发的代码啊?不解!

解决方案 »

  1.   

    表单提交了啊
    没必要用服务端控件<form id="form1" runat="server"  method="post">
    <input type='text' onkeypress="Submit();" />
    </form>
      

  2.   

    form中还有其它button控件吧
    按回车后就触发回发,刷新了页面
      

  3.   

    提交本来就会引发刷新页面,要是不想刷就用ajax
      

  4.   

    这是因为你的页面中并没有Submit();这个函数而导致脚本错误,你回车之后会出现脚本错误,这个时候你仔细看左下脚的状态栏会有个警告提示一闪而过。
    修正为:
    <asp:TextBox ID="textfield" runat="server" onkeypress="onSubmit();"></asp:TextBox>
      

  5.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title></title>
        <style type="text/css">
        body {font-size:14px}
        </style>
        <script>
        function Search()
    {
    var obj7 = document.getElementById("textfield");
    var tname = obj7.value;
    window.open("default2.aspx?keyword=" + tname);
    }
    function Submit()
    {
        if(event.keyCode==13)
        {
          Search();
          return false;
        }
    }    </script>
    </head>
    <body>
       
       <form id="form1" runat="server"  method="post"> 
    <input type='text' name="textfield" onkeypress="return Submit();" /> 
    </form> 
       
    </body>
    </html>
    试下,按回车会自动提交表单
      

  6.   

    上面Submit()函数写错了是笔误,不是这个问题我发现很奇怪的事情
    在TEXTBOXE后面加上<input type="text" style="display:none"/>,成这样,其余不变<form id="form1" runat="server"  method="post"> 
    <asp:TextBox ID="textfield" runat="server" onkeypress="Submit();"></asp:TextBox><input type="text" style="display:none"/>,
    </form>这样就不会回发了,真是见了鬼了!
      

  7.   

    因为一旦按下Enter键,form1也跟着提交了。直接删除Form标签或加入下面的代码都可以解决问题
    var form = document.Forms["form1"];
    form.onsubmit = function(){return false};
      

  8.   

    因为TextBox是服务器控件,应该用:
    <input type='text' onkeypress="Submit();" /> 
      

  9.   

    <asp:TextBox ID="textfield" runat="server" onkeypress="onSubmit();"></asp:TextBox>
    推荐
      

  10.   

    <asp:TextBox ID="textfield" runat="server" onkeypress="onSubmit();"></asp:TextBox>
    推荐
      

  11.   

    你在Form中放一个    <input type='text' />就能看到回车会提交页面。浏览器本来就具有这个特性,是你对浏览器了解的少了。
      

  12.   

    <asp:TextBox ID="textfield" runat="server" onkeypress="Submit();return false;"></asp:TextBox>
      

  13.   

    //这是我页中的一个TEXTBOX
    <form id="form1" runat="server"  method="post">
    <asp:TextBox ID="textfield" runat="server" onkeypress="Submit();return false;"></asp:TextBox>
    </form>
      

  14.   

    在javascript里 reutrn false一下
      

  15.   


    这个我知道,但是为什么多了这么一个隐藏的INPUT,就不刷新了呢!是这个问题!后来我用EVENT.RETURNVALUE=FALSE搞定了!