允许Enter键登录asp.net?

我有一个标准的asp:登录控件:

 

在Internet Explorer中,按Enter键不提交表单,但IE会快速向我发出10次哔声。 在其他浏览器中,Enter完全正常,并按照您的期望提交论坛。

我已经看到了这个问题,但只有当你有一个实际的表单元素和一个实际的按钮,而不是整个登录控件时才会有效。

为什么它在IE中被阻止(为什么有10次出于某种原因)? 有解决方法吗?

在Login控件的设计器中:“转换为模板”。 然后在Page Load中通过查找LoginButton来设置表单的defaultButton

ASPX:

 
.....

代码隐藏:

  protected void Page_Load(object sender, EventArgs e) { Button lbButton = Login1.FindControl("LoginButton") as Button; form1.DefaultButton = lbButton.UniqueID; } 

这是一个黑客,但它将为您的Internet Explorer问题提供解决方案。
在页面中添加一个隐藏在视图中的文本框。

   

这将导致Internet Explorer在按Enter键时发回Button Web控件的名称/值对。

 Button lbButton = Login1.FindControl("LoginButton") as Button; ContentPlaceHolder contentPlaceHolder = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1"); contentPlaceHolder.Page.Form.DefaultButton = lbButton.UniqueID; 

我知道这是一个超级老post,但另一种方法是使用一个asp:Panel ,将DefaultButton设置为用户通常点击登录的按钮的ID: