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

3

我有一个简单的表单,使用asp.net/C#编写,但在输入框中按回车键时无法提交表单。之前我曾经修复过一个bug,当按下回车键时只会刷新页面而不会提交表单数据,但现在按下回车键什么都不会发生,下面是修复方法:

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

有人知道如何修复这个问题或者有什么解决方法吗?

我假设它在其他浏览器中也能正常工作? - AlishahNovin
3个回答

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>

感谢Kyle和Kevin,完美地解决了问题,只需要删除我对旧漏洞的“修复”,我还为Kevin的答案点赞以表达我的感激之情。 - Jimmy

4
您可以为表单指定一个默认按钮,这意味着在任何输入控件上按回车键都将触发该按钮(即提交按钮)。我没有听说过任何特定浏览器无法正常工作的情况。这应该消除您需要绕过/破解的需求。
<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>

希望这能帮到你……

厉害的人想法相似,我觉得我们是同时提交的。+1 - Kyle B.

0

我不记得规则的具体细节,但大多数浏览器在满足条件的情况下,可以通过按下回车键提交表单。我认为这与你是否有一个或多个字段,或者是否至少有一个提交按钮(即使它被隐藏)有关。我最近做的一个网站中实现了这个功能,但我没有相关代码,但我可以告诉你,它可以在没有特殊脚本的情况下工作。请查看这篇帖子以获取更多详细信息:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接