Kerja keras karena harus menangkap dan menguji setiap keystroke untuk kunci ENTER benar-benar mengganggu saya, jadi solusi saya bergantung pada perilaku browser berikut:
Menekan ENTER akan memicu acara klik pada tombol kirim (diuji di IE11, Chrome 38, FF 31) ** (ref: http://mattsnider.com/how-forms-submit-when-pressing-enter/ )
Jadi solusi saya adalah menghapus tombol submit standar (yaitu <input type="submit">
) sehingga perilaku di atas gagal karena tidak ada tombol submit untuk secara ajaib klik ketika ENTER ditekan. Sebagai gantinya, saya menggunakan penangan klik jQuery pada tombol biasa untuk mengirimkan formulir melalui .submit()
metode 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>
Demo: http://codepen.io/anon/pen/fxeyv?editors=101
** perilaku ini tidak berlaku jika formulir hanya memiliki 1 bidang input dan bidang itu adalah input 'teks'; dalam hal ini formulir akan dikirimkan pada tombol ENTER bahkan jika tidak ada tombol kirim hadir di markup HTML (misalnya bidang pencarian). Ini telah menjadi perilaku browser standar sejak 90-an.