关于javascript:如何在textarea上捕获enter keypress而不是shift + enter?

How to catch enter keypress on textarea but not shift+enter?

本问题已经有最佳答案,请猛点这里访问。

我正在为texarea做这件事。 当用户按下Enter时应该调用一个函数,但是当按下Shift + Enter时不应该执行任何操作。

我尝试在这里模拟许多IM通信器具有的功能:在Enter上发送消息,但也使用Shift + Enter添加多行。


测试输入键码(13)和按下shift键。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...onkeyup = function(e) {
    if (e.keyCode == 13)
    {
//      if (e.shiftKey === true)
        if (e.shiftKey)  // thruthy
        {
            // new line
        }
        else
        {
            // run your function
        }
        return false;
    }
}

编辑:接受e.shiftKey的所有真值


1
2
3
4
5
6
element.onkeydown = function(o) {
  o = o || event;
  if (o.shiftKey && o.keyCode == 13) {
    /* shift + enter pressed */
  }
}


我相信你还需要一个keydown事件来检查SHIFT密钥,http://www.quirksmode.org/js/keys.html


查看事件对象的shiftKey属性,该属性将告诉您在按下键时是否保持shift。