IE 8 - 当用户按下回车键时,ASP.NET表单不提交

时间:2010-01-22 16:29:24

标签: asp.net internet-explorer forms

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

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

有人知道修复此问题或解决方法吗?

3 个答案:

答案 0 :(得分:5)

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

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

<asp:Panel id="pnlMyForm" runat="server" DefaultButton="btnMyButton">
<asp:textbox id="txtInput" runat="server" />
<asp:Button id="btnMyButton" text="Submit" runat="server" />
</asp:Panel>

答案 1 :(得分:4)

您可以为表单指定默认按钮,这意味着在任何输入控件上按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>

希望这会有所帮助......

答案 2 :(得分:0)

我不记得规则的具体细节,但是如果符合条件,大多数浏览器都能够在按下ENTER时提交表单。我认为这与你是否有一个或多于一个字段,或者是否至少有一个提交按钮(即使你隐藏它)有关。我在最近做过的网站上做过,但是我没有方便的代码,但是我可以告诉你它没有任何特殊的脚本。查看此帖子了解更多详情:

http://manfred.dschini.org/2007/09/20/submit-form-on-enter-key/