我有一个真正的难题:我有一个页面上有几个控件和一两个ASP:Button。当我在一个控件中,按下Enter键时,它会像我点击提交按钮一样,但实际上此时我不想这样做。
这个按钮不在一个设置了DefaultButton的ASP:Panel中,它没有OnClientClick属性,我看不到任何监视Enter键的JavaScript...为什么它会触发?
如果我创建一个标准的.ASPX页面,并在上面放置一个文本框和一个按钮,运行它并按下Enter键,按钮将被忽略,即单击事件不会触发。这是我期望的行为,但我没有得到。
简而言之,还有什么原因会导致按钮认为它是页面的默认按钮?
谢谢,
Mike K.
好的,这是我的测试页面标记:
当我运行页面并在文本框中输入一些文本,然后按下回车键时——哎呀,看看这个:在IE 8中,按钮事件被忽略了,例如页面只是重新加载,但在FF中,它会提交表单... 嗯嗯嗯。
这个按钮不在一个设置了DefaultButton的ASP:Panel中,它没有OnClientClick属性,我看不到任何监视Enter键的JavaScript...为什么它会触发?
如果我创建一个标准的.ASPX页面,并在上面放置一个文本框和一个按钮,运行它并按下Enter键,按钮将被忽略,即单击事件不会触发。这是我期望的行为,但我没有得到。
简而言之,还有什么原因会导致按钮认为它是页面的默认按钮?
谢谢,
Mike 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>
以下是代码中发生的情况:
protected void uxSubmit_Click(object sender, EventArgs e)
{
uxOut.Text = uxName.Text;
}
当我运行页面并在文本框中输入一些文本,然后按下回车键时——哎呀,看看这个:在IE 8中,按钮事件被忽略了,例如页面只是重新加载,但在FF中,它会提交表单... 嗯嗯嗯。
UseSubmitBehavior="false"
,它不仅会阻止回车键的响应,而且当您单击按钮时,它还会阻止代码后台中的按钮单击事件被触发,这可能不是您想要的结果。 - Hawkeye