【问题标题】:ASP.NET default button (LinkButton) not working in Google Chrome when multiple defaults exist存在多个默认值时,ASP.NET 默认按钮 (LinkBut​​ton) 在 Google Chrome 中不起作用
【发布时间】:2011-11-15 11:13:25
【问题描述】:

我有一个包含多个默认按钮的 ASP.NET Webforms 页面。在除 Google Chrome 之外的所有浏览器中,它们都按预期运行,但在 Chrome 中会触发错误的默认按钮。

我已经阅读了导致此问题的一些常见原因,例如。无效的 HTML(将 Panel 放在 TABLE 元素中),但事实并非如此。

我在 stackoverflow 上看到了一个类似的问题,但没有被接受的答案。

有没有办法解决这个问题?

更新:

我在MSDN 上读到,LinkBut​​tons 不适合设置为默认按钮。

“仅支持 Button 和 ImageButton 控件。”

我想这一定是问题所在。

【问题讨论】:

  • 默认按钮是什么意思。另外,您的意思是说,您单击了一个按钮,但调用了另一个按钮的事件操作
  • 我认为我认为使用 TabIndex
  • 您是否将按钮放在 asp:panel 中,然后在面板上设置 defaultbutton 属性?喜欢this
  • 您能否展示一些您在这些面板中获得的 html 端代码及其 DefaultButton 设置?如果它很重,不妨梳理一下其他表单元素。
  • 我在 Chrome 中遇到了同样的问题。我发现将 LinkBut​​ton 更改为标准 Button 解决了它。一点 CSS 就可以让两者看起来很相似。

标签: asp.net google-chrome


【解决方案1】:

我从未亲身经历过这种行为。 DefaultButton 属性在 Chrome 中一直对我有用,但是如果你不能真正解决它,有一种方法可以解决它。您可以将简短的 JavaScript 注入您想要触发按钮的控件中。这是一个非 jQuery 方法:

    StringBuilder script = New StringBuilder("");
    script.Append("if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {");
    script.Append("document.getElementById('" + Me.btnToFire.ClientID);
    script.Append("').click();return false;}} else {return true};");
    this.txtControlToAttach.Attributes.Add("onkeydown", script.ToString());

这是一个 jQuery 解决方案,可用于在同一块中分配多个(未经测试,因此可能需要调整)。

function fireButtonClick(ctrl, event) {
    if(event.which || event.keyCode){
        if ((event.which == 13) || (event.keyCode == 13)) {
            ctrl.click();
            return false;
        }
    }
    else {
        return true;
    }
}

$(document).ready(function() {
    $("#<%=this.ControlToAttach.ClientID%>").keypress(function(event) {
        fireButtonClick($("#<%=this.btnToFire.ClientID%>"), event);
    });

    $("#<%=this.ControlToAttach2.ClientID%>").keypress(function(event) {
        fireButtonClick($("#<%=this.btnToFire2.ClientID%>"), event);
    });

    // Just keep adding controls here
});

【讨论】:

    【解决方案2】:

    我在MSDN 上读到,LinkBut​​tons 不适合设置为默认按钮。

    “仅支持 Button 和 ImageButton 控件。”

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      相关资源
      最近更新 更多