У меня есть стандарт asp:login управление:
В Internet Explorer, нажимая Enter не отправляет форму, но звуковые сигналы IE во мне 10 раз быстро. В других браузерах Вводят превосходные работы, и отправляет форум, как Вы ожидали бы.
Я видел этот вопрос, но который только работает, когда у Вас есть фактический элемент формы с фактической кнопкой, не управление входом в систему в целом.
Почему это заблокировало в IE (и почему 10 раз по некоторым причинам)? Существует ли обходное решение?
В конструкторе элемента управления входом: «Преобразовать в шаблон». Затем в разделе «Загрузка страницы» установите defaultButton вашей формы, найдя LoginButton .
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;
}
Это взлом, но он поможет решить вашу проблему с Internet Explorer.
Добавьте на страницу текстовое поле, скрытое от просмотра.
<!-- Hack for Internet Explorer browsers to allow the page to post back when the enter key is pressed-->
<asp:TextBox ID="txtIEHackBox" runat="server" style="visibility: hidden; display: none;" />
Это приведет к тому, что Internet Explorer отправит обратно пару имя / значение веб-элемента управления Button при нажатии Enter.