<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!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 runat="server">
    <title>无标题页</title>
     <script language="javascript" type="text/javascript">
            function Button2_onclick()
            {
                window.open("http://www.baidu.com","aaa","width=750,height=400");
             }
           
  </script>
</head>
<body>
    <form id="form1" runat="server">神奇的页面,对TextBox按回车就会打开新窗口,但如果只放一个TextBox就不会打开新窗口
这个什么问题啊?
    <div>
        &nbsp;&nbsp;
        <asp:ImageButton ID="ImageButton3" runat="server" ImageUrl="~/images/small/spXuanZhe.png" OnClientClick="Button2_onclick()" />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
        <br />
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></div>
    </form>
</body>
</html>

解决方案 »

  1.   

    If you have a Web Form with just one single-line text input (even if there are additional input fields, like CheckBoxLists, RadioButtonLists, DropDownLists, and so on), hitting enter in the text input will not cause the Button Web control's Click event to fire when using Internet Explorer 具体对这个问题的解释,可以看看下边这篇文章,全E~看着累~http://aspnet.4guysfromrolla.com/articles/060805-1.aspx
      

  2.   

    1,2楼的老大,我是在textBox里面按回车就弹出来了,不是在点ImageButton的时候,但我并没有设置这个效果啊
      

  3.   

    Form页一般默认焦点在submit按钮上,按回车就相当于点了按钮。
    我也经常纳闷你的情况,为什么有的时候行有的时候不行,不过懒的查原因,没啥大影响
      

  4.   

    html form 的 submit 按钮就是如何设计的。 当你的光标焦点进入某个表单元素的时候,会激活该表单中第一个(流布局顺从左到右,从上至下) type=submit  的按钮(假如有),等待响应回车事件,并提交该form 在 ASP.NET 2.0 中 button 默认呈现为 <input type=submit> 此时不要额外脚本提交form ,submit 按钮就是设计用来提交form 而在 1.x 中则呈现为 <input type=button onclick=_doPostBack(...) /> 此普通 button 不具备 submit 的上述默认行为
      

  5.   

    没看懂你说的,我神奇的是一个TextBox不会发生这个情况,多个就会了!
      

  6.   

    cs文件的load事件都写什么代码了?会不会是事件影响的
      

  7.   

    按照5楼给的文章,设置多一个隐藏的TextBox就可以解决你的问题.
      

  8.   

    什么都没写,你们拿去跑一下就知道了,鼠标点到TextBox里面,然后按回车然后你在试下删除一个TextBox,把鼠标放里面按回车,会这个效果不!
      

  9.   

    那就加個判斷,讓它失效。<html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
        <title>无标题页</title>
         <script language="javascript" type="text/javascript">
                function Change()
                {
                    window.open("http://www.baidu.com","aaa","width=750,height=400");
                }
                
                function Test()
                {
                    if (event.keyCode==13)
                    {
                        return false;
                    }
                }
               
      </script>
    </head>
    <body>
        <form id="form1" runat="server">神奇的页面,对TextBox按回车就会打开新窗口,但如果只放一个TextBox就不会打开新窗口
    这个什么问题啊?
        <div>
            &nbsp;&nbsp;
            <asp:ImageButton ID="ImageButton3" runat="server" ImageUrl="~/images/small/spXuanZhe.png" OnClientClick="return Change();" />
            <br /><asp:TextBox ID="TextBox1" runat="server" onkeydown="return Test();"></asp:TextBox><br />
            <asp:TextBox ID="TextBox2" runat="server" onkeydown="return Test();"></asp:TextBox>
            <br />
            </div>
        </form>
    </body>
    </html>
      

  10.   

    像楼上写的一样,但还是照样弹出的么!
    学习ING
      

  11.   

    失误可以了,刚没看到15楼的
    <br /><asp:TextBox ID="TextBox1" runat="server" onkeydown="return Test();"></asp:TextBox>
    <br /><asp:TextBox ID="TextBox2" runat="server" onkeydown="return Test();"></asp:TextBox>
    学习到了~~
      

  12.   

    E文翻译~留个底备份~假设以下情况:我们有一个页面,它包含了很多个名字从TextBox1到TextBoxN的单行TextBox和一个叫做btnSubmit的按钮,按钮的Value为Click Me!(按钮的Value就是显示在Button上面的文本)(在这里,这些名字是根据Web控件的ID号来取的)。当一个用户填好页面并在一个TextBox中点击回车键时,这个页面会被提交,同时发送回下面的字符串(包含在提交的内容中):
     
    TextBox1=Value1&TextBox2=Value2&&TextBoxN=ValueN&btnSubmit=Click Me!   
     
    Value1…ValueN是输入给TextBox1到TextBoxN的内容。    当ASP.NET的页面被提交之后,它通过分析这个字符串能够知道这次提交是由于btnSubmit按钮控件所导致的。它会触发Web控件的Click事件,你的事件处理代码也就可以执行了。
    如果你现在只有一个单行的文本输入框,包含在提交内容中的字符串会忽略掉btnSubmit=Click Me!。也就是说如果你只包含了一个叫做TextBox1的单行输入框,你会得到下面的提交内容: TextBox1=Value1 没有信息提到哪个按钮触发了这次提交,ASP.NET的服务器端不能够正确的触发按钮的Click事件。因此,如果你的页面只包含一个单行文本输入框(甚至还有另外的输入控件,例如CheckBoxList,RadioButtonList,DropDownList等等),使用InternetExplorer时,点击回车将不会触发Button控件的Click事件——其它浏览器,例如FireBox,总是会提交按钮的值与名称,即使只有一个文本输入框。 
      

  13.   

    IE6、7的反应:
    页面上只有一个textbox的时候,按回车不会有响应;
    页面上有一个以上textbox时,按回车,则默认按钮会响应。其他浏览器FF和Oprea则一切正常。这可能是IE的bug,想听听大家的解决办法,难道都是放一个不可见的textbox吗?