输入键触发按钮单击 - 但我不希望它

Mik*_*ott 5 asp.net

这里有一个真正令人头疼的问题:我有一个页面上有几个控件,还有一个ASP:按钮或两个.当我在一个控件中,并点击Enter键时,它就像我点击了提交按钮一样,我此时并不想要这样做.

该按钮不在ASP:面板中设置了DefaultButton,它没有OnClientClick属性,我看不到任何监视Enter键的JavaScript ...为什么它会被触发?

如果我创建一个标准的.ASPX页面并在其上放置一个文本框和一个按钮,运行它并点击回车键,该按钮将被忽略,例如点击事件不会触发.这是我期望的行为,但我没有得到.

简而言之,还有什么可能导致按钮认为它是页面的默认按钮?

谢谢,

迈克K.


好的,这是我的测试页面标记:

<p><asp:Label ID="uxNameL" runat="server" AssociatedControlID="uxName">Name</asp:Label><asp:TextBox ID="uxName" runat="server"></asp:TextBox></p>
<p><asp:Button id="uxSubmit" runat="server" Text="Submit" onclick="uxSubmit_Click" /></p>
<asp:Literal ID="uxOut" runat="server" EnableViewState="false"></asp:Literal>
Run Code Online (Sandbox Code Playgroud)

这是代码中发生的事情:

    protected void uxSubmit_Click(object sender, EventArgs e)
    {
        uxOut.Text = uxName.Text;
    }
Run Code Online (Sandbox Code Playgroud)

当我运行页面,并在文本框中输入一些文本并按Enter - ha时,你会看到:在IE 8中,按钮事件被忽略,例如页面只是重新加载,但在FF中,它提交表单. ..

Hmmmmm.

Nis*_*sha 15

平时

<asp:Button ID="button" UseSubmitBehavior="false"/> 
Run Code Online (Sandbox Code Playgroud)

作品.但您可能必须在应用程序中禁用退格键,这会在您最近的历史记录中将您带回1页.


Pad*_*ddy 8

我相信(并且有待纠正),但是如果你有一个表单,使用提交类型的输入按钮,那么当你按下回车键时,它将触发该按钮点击.