【问题标题】:ASP.NET: How to specify which button should defaultly react for an Enter press?ASP.NET:如何指定哪个按钮默认响应 Enter 键?
【发布时间】:2023-03-14 04:04:01
【问题描述】:

我有一个网页,其中有两个按钮和一个文本框。当页面加载并且用户按下回车键时,第一个按钮被点击 - 没关系。

我想保证,如果用户输入文本框并在其中键入任何内容,然后按 Enter,则单击第二个按钮。 当我输入文本框时,我可以看出当我按下回车时将使用第一个按钮,因为它有点深蓝色边框。

我试过javascript的

if (event && event.keyCode == 13)
    document.getElementById("Button2").click();

但它不知何故不起作用。所以我的第二个想法是,当我在特定的文本框(深蓝色边框的按钮)中时,必须有可能告诉浏览器默认哪个按钮应该对回车做出反应。

编辑:输入第一个按钮而第二个是 asp:Button 可能很重要

Edit2: Page.Form.DefaultButton 不是一个选项,因为不知何故有两个默认按钮。如果用户没有输入文本框,则应单击一个,如果他在文本框内,则应单击另一个。更改 DefaultButton 不是一种选择,因为这需要在用户输入 textBox 后进行回发...

【问题讨论】:

    标签: asp.net javascript


    【解决方案1】:

    Page.Form.DefaultButton 允许设置哪个按钮将对Enter 键作出反应。

    【讨论】:

    • 请仔细阅读!我不想更改默认的单击按钮,因为当用户在页面加载后按下回车键时,应该单击第一个按钮。仅当焦点位于文本框上时才应单击另一个按钮。我无法使用您的代码,因为这是服务器代码,我需要在客户端上执行此操作
    【解决方案2】:
    <asp:Panel runat="server" DefaultButton="Button2" >
        <asp:TextBox runat="server" />
        <asp:Button ID="Button2" runat="server" Text="Button2" OnClientClick="alert('Button2')"/>
    </asp:Panel>
    

    一旦您开始使用文本框 - button2 将成为默认按钮。在那之前,另一个按钮将是默认按钮

    【讨论】:

    • @BritishDeveloper Sweet - 我不知道您可以为单个面板设置 DefaultButton。
    • 这很棒,我不知道,如果...如果不是共享点生成的站点,在此面板中有一个控件 asp:Login with id "login "和我正在谈论的一个按钮,ID也是"登录"......我无法改变它。因此,这也不是一个选项,因为设置 DefaultButton="login" 生成错误,因为使用此 ID 找到了登录控件。
    • 在设计视图中,您可以单击登录控件并选择“转换为模板”,然后您可以获取该按钮的 ID。还是您无权访问登录控件? (我不熟悉sharepoint)
    【解决方案3】:

    默认按钮属性

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 2016-04-23
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多