gpt4 book ai didi

asp.net - 如何在 ASP.NET 中将 CTRL+S 或 ALT+S 设置为热键组合?

转载 作者:行者123 更新时间:2023-12-03 23:25:23 25 4
gpt4 key购买 nike

我想为 ASP.NET 表单中的“保存”按钮设置一个“热键”。我想使用 CTRL+S,但它似乎是 Windows 的默认保存“热键”。有没有办法用我自己的实现来覆盖它?

最佳答案

这在 HTML/JS 中很有可能。您需要为要“捕获”热键的元素分配一个事件处理程序,或者将整个文档作为一个事件处理。

看来,如果您使用 onkeydown事件,您可以绕过大多数浏览器(至少 IE、Chrome、FF)中的默认保存提示对话框。我无法使用 keypress 做到这一点例如事件。所以一定要使用 onkeydown事件!

例子:

document.onkeydown = function(event)
{
if (event.ctrlKey && event.keyCode == 83)
{
alert('You just pressed CTRL+S');
// Do stuff here
}
};

下一步是在用户按下 CTRL-S 时执行您想要执行的实际操作。假设这是一个带有回发的标准 ASP.NET Web 表单,您可以以编程方式发布该表单。

有多种方法可以做到这一点,这可能是最简单的(鉴于文档只有一种形式!):
document.forms[0].submit();

所以整个片段基本上是:
document.onkeydown = function(event)
{
if (event.ctrlKey && event.keyCode == 83)
{
document.forms[0].submit();
}
};

编辑:对于多个按钮,而不仅仅是单个表单提交,请尝试以下操作:

假设您有这些 asp:buttons:
<asp:button runat="server" id="btnSaveSubmit" onclick="btnSaveSubmit_click" Text="Save and submit" />
<asp:button runat="server" id="btnSaveHold" onclick="btnSaveHold_click" Text="Save and hold" />

那么您的 javascript 将是这样的(注意,我假设您现在正在使用 jQuery):
<script>
$(function() {
document.onkeydown = function(event)
{
if (event.ctrlKey && event.keyCode == 83) //CTRL+S
{
// Just emulate a button click on the save and submit button by
// using jQuery to find the button based on it's clientID
$('#<%=btnSaveSubmit.ClientID%>').click();
}

if (event.ctrlKey && event.keyCode == 72) //CTRL+H
{
// Just emulate a button click on the save and hold button by
// using jQuery to find the button based on it's clientID
$('#<%=btnSaveHold.ClientID%>').click();
}
};
});
</script>

应该这样做...

关于asp.net - 如何在 ASP.NET 中将 CTRL+S 或 ALT+S 设置为热键组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24650904/

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