Решение Vanilla JavaScript
function submitOnEnter(event){
if(event.which === 13){
event.target.form.dispatchEvent(new Event("submit", {cancelable: true}));
event.preventDefault(); // Prevents the addition of a new line in the text field (not needed in a lot of cases)
}
}
document.getElementById("usermsg").addEventListener("keypress", submitOnEnter);
Если вы предпочитаете не отправлять, если нажата Shift, все, что вам нужно сделать, это изменить строку 2 на:
if(event.which === 13 && !event.shiftKey){
Чтобы очистить текстовую область, просто добавьте это в теле оператора if
event.target.value = "";
Чтобы использовать это с Internet Explorer 11, измените строку 3 на:
var newEvent = document.createEvent("Event");
newEvent.initEvent("submit", false, true);
event.target.form.dispatchEvent(newEvent);
Но подожди?Почему бы не использовать event.target.form.submit();
?
Когда вы вызываете метод submit формы, прослушиватели событий не будут вызываться.