gpt4 book ai didi

存在多个默认值时,ASP.NET 默认按钮 (LinkBut​​ton) 在 Google Chrome 中不起作用

转载 作者:行者123 更新时间:2023-12-01 06:43:17 26 4
gpt4 key购买 nike

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

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

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

这个问题有什么解决办法吗?

更新:

我继续阅读 MSDN LinkBut​​tons 不适合设置为默认按钮。

“仅支持 Button 和 ImageButton 控件。”

我想这一定是问题所在。

最佳答案

我从未亲身经历过这种行为。 DefaultButton 属性在 Chrome 中一直对我有用,但是如果你不能真正解决它,有一种方法可以解决它。您可以将简短的 JavaScript 注入(inject)您想要触发按钮的控件中。这是一个非 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 解决方案,可用于在同一 block 中分配多个(未经测试,因此可能需要调整)。
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
});

关于存在多个默认值时,ASP.NET 默认按钮 (LinkBut​​ton) 在 Google Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8135454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com