Quá mức cần thiết để nắm bắt và kiểm tra mọi tổ hợp phím cho phím ENTER thực sự làm tôi khó chịu, vì vậy giải pháp của tôi phụ thuộc vào hành vi trình duyệt sau:
Nhấn ENTER sẽ kích hoạt một sự kiện nhấp chuột vào nút gửi (được thử nghiệm trong IE11, Chrome 38, FF 31) ** (ref: http://mattsnider.com/how-forms-submit-when-pressing-enter/ )
Vì vậy, giải pháp của tôi là loại bỏ nút gửi tiêu chuẩn (nghĩa là <input type="submit">
) để hành vi trên không thành công vì không có nút gửi để nhấp một cách kỳ diệu khi nhấn ENTER. Thay vào đó, tôi sử dụng trình xử lý nhấp chuột jQuery trên một nút thông thường để gửi biểu mẫu thông qua .submit()
phương thức của 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>
Bản trình diễn: http://codepen.io/anon/pen/fxeyv?editors=101
** hành vi này không được áp dụng nếu biểu mẫu chỉ có 1 trường đầu vào và trường đó là đầu vào 'văn bản'; trong trường hợp này, biểu mẫu sẽ được gửi theo khóa ENTER ngay cả khi không có nút gửi nào xuất hiện trong đánh dấu HTML (ví dụ: trường tìm kiếm). Đây là hành vi tiêu chuẩn của trình duyệt từ những năm 90.