Как уловить ввод keypress на textarea, но не сдвиг + ввод?

Я делаю это для тексарии. Функция должна вызываться, когда пользователь нажимает Enter, но ничего не следует делать при нажатии Shift + Enter.

Я пытаюсь имитировать здесь функцию, которую имеют многие IM-коммуникаторы: отправляет сообщение на Enter, но также добавляет несколько строк, используя Shift + Enter.

Ответ 1

Проверьте код ввода (13) и нажмите клавишу переключения.

...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

Ответ 2

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

Ответ 4

Посмотрите на свойство shiftKey объекта события, которое сообщит вам, был ли сдвиг проведен во время нажатия клавиши.