我有一个标准的asp:登录控件:
<asp:Login ID="mbLogin" runat="server" TitleText="" DestinationPageUrl="~/Default.aspx" PasswordRecoveryText="Forgot your password?" PasswordRecoveryUrl="~/LostPassword.aspx"></asp:Login>
在Internet Explorer中,按Enter键不会提交表单,但是IE会在10秒内快速发出哔声.在其他浏览器中输入作品完美无缺,并提交您所期望的论坛.
我看到了this question,但只有当你有一个实际的按钮,而不是整个登录控件的实际表单元素才有效.
为什么在IE中被阻止(为什么10次因为某些原因)?有解决方法吗?
解决方法
在您的登录控件的设计器中:“转换为模板”.然后在页面加载中通过查找LoginButton设置您的窗体的defaultButton.
ASPX:
<form id="form1" runat="server"> <div> <asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate"> <LayoutTemplate> <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse;"> <tr> <td> <table border="0" cellpadding="0"> ..... <tr> <td align="right" colspan="2"> <asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" ValidationGroup="Login1" /> </td> </tr> </table> </td> </tr> </table> </LayoutTemplate> </asp:Login> </div> </form>
代码隐藏:
protected void Page_Load(object sender,EventArgs e) { Button lbButton = Login1.FindControl("LoginButton") as Button; form1.DefaultButton = lbButton.UniqueID; }