IE 8-用户按enter键时ASP.NET表单未提交

IE 8-用户按enter键时ASP.NET表单未提交,asp.net,internet-explorer,forms,Asp.net,Internet Explorer,Forms,我有一个用asp.net/C#编写的简单表单,在表单的输入框中尝试按enter键时,由于某种原因不会提交表单。我已经为以前的一个bug实现了一个修复程序,按enter键只会刷新页面而不提交表单数据,但现在按enter键什么也不做,修复程序如下: <div style="display: none"> <input type="text" name="hiddenText" /> </div> 任何人都知道该问题的解决方法吗?您可以为表单指定一个默

我有一个用asp.net/C#编写的简单表单,在表单的输入框中尝试按enter键时,由于某种原因不会提交表单。我已经为以前的一个bug实现了一个修复程序,按enter键只会刷新页面而不提交表单数据,但现在按enter键什么也不做,修复程序如下:

<div style="display: none">
    <input type="text" name="hiddenText" />
</div>


任何人都知道该问题的解决方法吗?

您可以为表单指定一个默认按钮,这意味着在任何输入控件上按enter键都会触发该按钮(即,以提交按钮为目标)。我还没有听说过在任何特定的浏览器中都不起作用。这将消除您对变通/破解的需要

<form id="form1" runat="server">
    <asp:Panel ID="pnlFormContents" runat="server" DefaultButton="btnSubmit">
        <!-- add some input controls as needed -->
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click"/>
    </asp:Panel>
</form>


希望这对您有所帮助……

我假设您的页面上有一个按钮,以及它的事件处理程序

您是否尝试过将表单(使用按钮)包装在面板控件中并设置默认按钮属性

i、 e


我不记得规则的具体内容,但大多数浏览器都能够在满足条件的情况下按ENTER键提交表单。我认为这与您是否有一个或多个字段有关,或者是否至少有一个提交按钮(即使您将其隐藏)。我最近在一个网站上做过,但是我手头没有代码,但是我可以告诉你,它不需要任何特殊的脚本就可以工作。查看此帖子以了解更多详细信息:


我想它也适用于其他浏览器?伟大的人都有相同的想法,我想我们是同时提交的+1感谢凯尔和凯文,效果很好,只需删除我对旧错误的“修复”,也投票支持凯文的答案,让他获得一些代表
<asp:Panel id="pnlMyForm" runat="server" DefaultButton="btnMyButton">
<asp:textbox id="txtInput" runat="server" />
<asp:Button id="btnMyButton" text="Submit" runat="server" />
</asp:Panel>