overkill ของการจับภาพและทดสอบการกดแป้นทุกครั้งสำหรับคีย์ ENTER ทำให้ฉันเป็นโรคจิตจริง ๆ ดังนั้นโซลูชันของฉันขึ้นอยู่กับพฤติกรรมของเบราว์เซอร์ต่อไปนี้:
การกด ENTER จะทำให้เกิดเหตุการณ์คลิกบนปุ่มส่ง (ทดสอบใน IE11, Chrome 38, FF 31) ** (อ้างอิง: http://mattsnider.com/how-forms-submit-when-pressing-enter/ )
ดังนั้นทางออกของฉันคือการลบปุ่มส่งมาตรฐาน (เช่น<input type="submit">
) เพื่อให้พฤติกรรมข้างต้นล้มเหลวเพราะไม่มีปุ่มส่งให้คลิกอย่างน่าอัศจรรย์เมื่อกด ENTER แต่ฉันใช้ตัวจัดการการคลิก 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 ช่องป้อนข้อมูลและฟิลด์นั้นเป็นอินพุต 'ข้อความ' ในกรณีนี้จะมีการส่งแบบฟอร์มเมื่อกดปุ่ม ENTER แม้ว่าจะไม่มีปุ่มส่งอยู่ใน HTML markup (เช่นช่องค้นหา) นี่เป็นพฤติกรรมของเบราว์เซอร์มาตรฐานมาตั้งแต่ยุค 90