mvc项目中的键盘快捷键

时间:2016-02-26 11:24:03

标签: javascript jquery asp.net-mvc

如何处理多个键。我有多个保存选项,我想一次处理一个按钮。我没有得到如何在整个页面中处理多个保存按钮我在mvc项目中使用jquery。请帮助< / p>

我正在使用此代码 -

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

这里想要处理用于保存的键盘快捷键的保存按钮。我希望通过此处理多个按钮。

1 个答案:

答案 0 :(得分:0)

例如,在Firefox中使用Alt + S将打开历史记录菜单。因此,您必须确定要使用哪些按键或热键组合,这些组合不会在浏览器热键中生成。对于下面的示例,我使用Shift + S来触发函数来模拟保存。

直播示例:http://codepen.io/larryjoelane/pen/zqOQEd?editors=1010

//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");

}