Javascript ASP.NET MVC项目中的键盘快捷键

Javascript ASP.NET MVC项目中的键盘快捷键,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,如何处理多个键 就像我有多个保存选项,我想一次处理一个按钮。我不知道如何处理整个页面上的多个保存按钮。我正在ASP.NETMVC项目中使用jQuery。我该怎么做 我正在使用以下代码: $(document).bind('keydown', 'ALT+S', function() { // Alt + S for saving shortcut if (e.keyId == '#btnSaveCompany') { // Here I want to handle

如何处理多个键

就像我有多个保存选项,我想一次处理一个按钮。我不知道如何处理整个页面上的多个保存按钮。我正在ASP.NETMVC项目中使用jQuery。我该怎么做

我正在使用以下代码:

$(document).bind('keydown', 'ALT+S', function() {
    // Alt + S for saving shortcut
    if (e.keyId == '#btnSaveCompany') {
        // Here I want to handle a function for the key btnSaveCompany
        funSaveCreation();
    }
});

在这里,我想处理保存按钮的键盘快捷键保存。我想通过这个来处理多个按钮。

例如,在Firefox中使用
Alt+S
将打开历史记录菜单。因此,您必须找出要使用的不会触发内置浏览器热键的向下键或热键组合。对于下面的示例,我使用
Shift+S
启动一个函数来模拟保存

实例:


这不是
keydown
事件处理程序的工作方式。阅读文档了解更多信息:我明白了这一点,但问题是,在我的页面中,我有多个保存多个信息的保存按钮,比如一个用于创建和一个弹出保存,另一个用于保存其他信息,我正在使用不同的功能保存不同的内容、取消和其他用途,那么如何处理这种情况,您需要将keydown绑定到html元素/节点,然后检查键是什么。“ALT+S”不是html元素(事实上,您根本不需要此参数-如果您将“#btnSaveCompany”在这里,只有当该按钮具有焦点时,它才会起作用-这就破坏了拥有键盘快捷键的意义。如果你有多个按钮,那么你希望alt+s为哪一个按钮工作?你知道键盘快捷键是如何工作的吗?我是如何发现的,就像我在页面上一样,有不同的按钮用于保存。在弹出窗口中,不同的按钮用于保存,所以如何通过将收集的快捷方式处理此问题。如何找到Rory先生?
//variable to hold the value of keydown press
//combinations
var saveHotKeys = 0;

//keysDown flag intialized to false
var keysDown = false;

$(document).on("keydown", function(e) {

  //set keysDown flag to true
  keysDown = true;

  //if the keysDown flag is true
  //and the key pressed is not equal to value stored
  if(keysDown === true && e.which !== saveHotKeys){

      //add key code value saveHotKeys
      saveHotKeys += e.which;

  }

  //debug only(used to determine total value of keydown codes)
  console.log(saveHotKeys);

  // SHIFT + S for saving shortcut
  // Using CTRL + S will invoke
  // browser hot key
  if ( saveHotKeys === 99) {

    //call the save function
    funSaveCreation();       

  }

}); 

//key up event to clear the flag  and hot keys values
$(document).on("keyup",function(){

  //set keysDown flag to false
  keysDown = false;

  //clear the saveHotKeys value
  saveHotKeys = 0;

});

function funSaveCreation() {

  alert("saved");

}