Излишняя необходимость записывать и тестировать каждое нажатие клавиши ВВОД меня действительно беспокоит, поэтому мое решение основано на следующем поведении браузера:
Нажатие ENTER вызовет событие щелчка на кнопке отправки (протестировано в IE11, Chrome 38, FF 31) ** (ссылка: http://mattsnider.com/how-forms-submit-when-pressing-enter/ )
Поэтому мое решение состоит в том, чтобы удалить стандартную кнопку отправки (т. Е. <input type="submit">
), Чтобы вышеуказанное поведение не выполнялось, потому что нет кнопки отправки, которая бы волшебным образом нажималась при нажатии клавиши ВВОД. Вместо этого я использую обработчик щелчков jQuery на обычной кнопке, чтобы отправить форму с помощью .submit()
метода jQuery .
<form id="myform" method="post">
<input name="fav_color" type="text">
<input name="fav_color_2" type="text">
<button type="button" id="form-button-submit">DO IT!</button>
</form>
<script>
$('#form-button-submit').click(function(){
$('#myform').submit();
});
</script>
Демо: http://codepen.io/anon/pen/fxeyv?editors=101
** это поведение не применимо, если форма имеет только 1 поле ввода, и это поле является текстовым; в этом случае форма будет отправлена после нажатия клавиши ВВОД, даже если в разметке HTML нет кнопки отправки (например, поле поиска). Это стандартное поведение браузера с 90-х годов.