如何在input事件中检测Enter按键?为何e.KeyCode返回undefined?
解决输入框Enter键触发事件时
e.KeyCode返回undefined的问题 你的代码存在两个关键问题,导致e.KeyCode始终返回undefined:
- 事件类型选择错误:
input事件仅在输入框内容发生变化时触发,不会传递完整的按键事件信息。要监听按键操作,应使用keydown或keyup事件——这两个事件才会携带按键相关的属性。 - 属性名大小写错误:JavaScript是大小写敏感的,正确的按键码属性是
e.keyCode(小写k),而非e.KeyCode(大写K)。
修正后的代码:
$(document).ready(function() { $(document).on('keydown', "#myInput", function(e) { console.log(e.keyCode) if (e.keyCode === 13) { console.log('Enter Key Pressed') } }) })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id="myInput" name="input_field">
额外优化建议:
现在更推荐使用e.key === 'Enter'来判断Enter键,这种方式无需记忆按键码,可读性更强:
$(document).ready(function() { $(document).on('keydown', "#myInput", function(e) { if (e.key === 'Enter') { console.log('Enter Key Pressed') } }) })
内容的提问来源于stack exchange,提问作者user2273145
相关产品推荐
相关产品推荐

