【问题标题】:Preventing form submittion with enter key on all but one submit button防止在除一个提交按钮之外的所有按钮上使用输入键提交表单
【发布时间】:2014-12-13 07:30:17
【问题描述】:

我有一个包含两个提交按钮的 aspx Web 表单母版页,一个用于帐户登录,一个用于站点搜索。我希望输入键提交登录,但不提交网站上的任何其他按钮,因为登录更频繁地使用。每次我在输入一些登录信息后按 Enter 键时,搜索按钮都会触发并将我带到一个空的结果页面。以下我尝试过但没有成功:

1) 将登录按钮设为 type=submit,其他所有按钮只需 type=button

2) 为所有按钮设置 UseSubmitBehavior="False",但登录设置为 true。

3) 在输入的 ID 上使用各种 JQuery 代码来禁用回车键的 keydown 事件。

唯一有效的代码如下,但是它禁用了所有东西的回车键。当我用窗口替换选择器时,它无法工作。由于整个页面是一个表单,我没有添加额外的表单标签。必须有一种方法可以让回车键只在一个按钮上起作用。谢谢

 $(function () {
    $(window).keydown(function (event) {
        if (event.keyCode == 13) {
            event.preventDefault();
            return false;
        }
    });
});

 search:

 <div id="SearchForm">
<fieldset>
    <asp:TextBox ID="searchQuery" runat="server" size="15" />
</fieldset>
<asp:ImageButton ID="searchButton" runat="server" onmouseover="this.src='/RESOURCES/buttons/search_hover.png'"
    onmouseout="this.src='/RESOURCES/buttons/search_active.png'" ImageUrl="/RESOURCES/buttons/search_active.png"
    type="button" Style="font-size: 11px;" class="SearchBtn" alt="Search" OnClick="searchButton_Click"
    UseSubmitBehavior="False" CausesValidation="False" />
 </div>

 login:

  <div id="logonbox">
      <asp:Label ID="Label1" class="LoginLabel1" runat="server" Text="Account Number"></asp:Label>
        <asp:TextBox ID="AcctNum" class="AcctNumTexbox" runat="server"></asp:TextBox>
        <asp:Label ID="Label2" runat="server" class="LoginLabel2" Text="Access Code"></asp:Label>
        <asp:TextBox ID="MtrNum" class="MtrNumTexbox" runat="server"></asp:TextBox>
        <asp:ImageButton ID="Login1" type="submit" runat="server" class="boxsubmitbtn" src="/resources/buttons/login.gif"
        OnClick="LogInBtn_Click" UseSubmitBehavior="True" CausesValidation="False" />
    <p>
        <a href="/ACCOUNTS/accounts.aspx">Need help logging in?</a>
    </p>
</div>     

【问题讨论】:

  • 如果您发布生成的HTML 代码而不是asp 标记,那就太好了,因为问题并不特别与asp 相关,而且并不是每个人都一直在运行asp 服务器。 ..
  • 另外,我没有看到任何&lt;form&gt; 标签,asp 会生成它吗?难道你不能简单地将登录和搜索字段分成不同的表单,这样登录就不会触发搜索吗?
  • When I substituted window for a selector it failed to work. 你用的是什么选择器? It should have worked.

标签: jquery webforms master-pages form-submit enter


【解决方案1】:

有很多方法可以实现你想要的,我发现最简单的是:

在后面的代码中,在 Page Load 方法中添加这一行:

protected void Page_Load(object sender, EventArgs e)
{
     this.Form.DefaultButton = Login1.UniqueID;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 2016-02-07
    • 2013-08-21
    相关资源
    最近更新 更多