19

我有一个文本框和许多按钮。当用户在某个文本框中并按下“enter”键时,会引发特定的按钮单击事件。我在互联网上读到“enter”键存在一些问题,我尝试了一些解决方案,但它仍然总是输入该按钮事件(该按钮是页面中的第一个按钮)。

我尝试创建一个什么都不做的按钮并将其写入page_load:

idTextBoxFA.Attributes.Add("onkeydown","if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementBtId('" + noEnterButton.UniqueID + "').click();return false;}} else {return true}; ");

我所有的页面控件都在一个表单中,我尝试将表单“defaultButton”属性赋予我创建的那个按钮。那也没有用。

知道为什么这不起作用,我在做什么错吗?

4

3 回答 3

39

ASP.NET 中控制按下 ENTER 时激活哪个提交按钮的标准方法是将控件和按钮包装在 asp:Panel 中,并将 DefaultButton 属性设置为正确的按钮。

如果我正确阅读了您的问题,您只希望在按下 ENTER 时激活一个特定按钮,因此将页面上的所有内容包装在一个 asp:Panel 中。

<asp:Panel id="pnlDefaultButton" runat="server" DefaultButton="btnOK">
    <!-- All controls here including: -->
    <asp:Button id="btnOK" runat="server" Text="OK" />
</asp:Panel>
于 2010-08-12T15:15:36.713 回答
8

不需要面板。只需使用以下内容:

UseSubmitBehavior="false"
于 2014-02-08T18:40:31.907 回答
0

请用

idTextBoxFA.Attributes.Add("onkeypress", "javascript:var evnt = window.event";
if(evnt.keyCode==13)
{
document.getElementById('" + noEnterButton.ClientID + "').click();
}
else{};");
于 2014-02-20T09:23:52.503 回答