ASP.NET输入键触发不需要的按钮

时间:2010-11-20 11:01:09

标签: asp.net button postback

我将它放在页面顶部(在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>

当我按下页面上另一个TextBox上的回车键时(在aspx页面中),该按钮一直被触发

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

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

任何人都知道为什么会这样?

2 个答案:

答案 0 :(得分:2)

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

您可能想尝试关注asp:panel

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

</asp:Panel>

答案 1 :(得分:2)

按Enter键将提交默认表单。如果您有几个控件要控制输入按钮,则需要在控件上挂钩以截取回车键,然后执行自己的逻辑。

像这样的东西

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