检查是否在JS / Vue 2中按下Shift +字母

时间:2019-05-07 19:24:38

标签: javascript vue.js

有没有办法检查lodash的反跳操作中是否按下Shift +字母?

tf.estimator.EstimatorSpec

在我的情况下不起作用,请在fetchDebounced: _.debounce(function(e) { if (e.keyCode === 16 && e.keyCode >= 46 && e.keyCode <= 90) { console.log('shift + letter is pressed') } } 事件中使用它。我只想按SHIFT + LETTER(例如Shift + a)(或Shift + z)时才打印控制台消息。有可能吗?

4 个答案:

答案 0 :(得分:2)

您可以使用onkeydown和e.shiftKey:

document.onkeydown = function(e) {
  if (e.shiftKey && e.keyCode >= 46 && e.keyCode <= 90) {
    console.log("SHIFT + " + e.keyCode);
    return false;
  }
}

答案 1 :(得分:0)

根据this answer

  

//Transport Table VC import UIKit class TableViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() } } 是布尔值。 event.shiftKey(如果按下Shift键),true(如果未按下)。 falsealtKey的工作方式相同。

     

因此,基本上,您只需要使用ctrlKey正常检测击键,并根据需要检查这些属性。

答案 2 :(得分:0)

要获得预期的结果,请使用以下选项,即在一个键上将shift键按下和keyCode检查在65-90(A-Z)之间作为一个事件进行跟踪

function checkCode(e) {
    if(e.shiftKey){
    console.log(e.shiftKey && (e.keyCode >= 65 || e.keyCode <= 90))      
    }
}
<input onkeyup = "checkCode(event)" />

codepen-https://codepen.io/nagasai/pen/NVqMOg

答案 3 :(得分:0)

因为人们正在回答,所以这是this previously-asked question的最佳答案。

...onkeyup = function(e) {
    if (e.keyCode == 13)
    {
//      if (e.shiftKey === true)
        if (e.shiftKey)  // thruthy
        {
            // new line
        }
        else
        {
            // run your function
        }
        return false;
    }
}

还要注意上面Das_Geek的回答,根据古老的Niet the Dark AbsolaltKeyctrlKey的工作方式相同。