Press Shift and Enter for a new line
By default, pressing Enter
or Shift
and Enter
will generate a new line for a textarea element.
In some cases such as an inline editable element, or a messaging application, you would like to submit the data when user presses Enter
. The only way to generate a new line is to press Shift
and Enter
.
Assume that we have the following textarea element:
<textarea id="message"></textarea>
To prevent the default behavior of pressing the Enter
key, we can handle the keydown
event:
const ele = document.getElementById('message');
ele.addEventListener('keydown', function (e) {
const keyCode = e.which || e.keyCode;
if (keyCode === 13 && !e.shiftKey) {
e.preventDefault();
}
});
In the demo below, pressing Enter
will do nothing:
Demo
Press Shift and Enter for a new line
See also