【问题标题】:ASP.NET Enter key triggering unwanted buttonASP.NET Enter 键触发不需要的按钮
【发布时间】:2011-05-13 01:18:56
【问题描述】:

我在页面顶部有这个(在 MasterPage.master 中)

    <asp:Panel ID="panSearch" runat="server">
      <asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
      <asp:ImageButton ID="btnSearch" runat="server" ImageUrl="~/images/iconSearch.gif" onclick="btnSearch_Click" />
    </asp:Panel>

当我在页面下方(在 aspx 页面中)的另一个 TextBox 上按 Enter 键时,按钮不断被触发

<input type="text" id="txtTagName">
<input type="button" value="Tag" id="btnAddTagOk">

我找不到任何可以做到这一点的 JavaScript。

有人知道为什么会这样吗?

【问题讨论】:

    标签: asp.net button postback


    【解决方案1】:

    您可能还有其他类型为type="submit" 的按钮。默认情况下,当在文本框上按下enter 时,浏览器会提交表单。

    您可能想尝试关注您的asp:panel

    <asp:Panel ID="panSearch" runat="server" DefaultButton="btnSearch">
    
    </asp:Panel>
    

    【讨论】:

      【解决方案2】:

      点击回车将提交默认表单。如果您有多个控件要控制回车按钮,则需要在控件上挂上 javascript 以拦截回车键按下,然后执行您自己的逻辑。

      类似的东西

      <input type="text" id="txtTagName" onkeydown="if (event.keyCode == 13) document.getElementById('btnAddTagOk').click()"/>
      

      【讨论】:

      • 我明白了,所以你需要 event.preventDefault();在keydown上。谢谢!
      猜你喜欢
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 2016-10-25
      相关资源
      最近更新 更多