如何检测用户何时在输入字段中按Enter键
How to detect when the user presses Enter in an input field
我只有一个输入字段,我想注册onChange和onKeyPress事件,以检测用户何时完成输入或按下Enter键。我只需要使用javascript。谢谢你的帮助。
我有:
var load = function (){
//I want to trigger this function when user hit Enter key.
}
document.getElementById('co').onchange=load; //works great
document.getElementById('co').onKeyPress=load;
//not sure how to detect when user press Enter
html
//no form just a single input field
<input type='text' id='co'>
document.getElementById('foo').onkeypress = function(e){
if (!e) e = window.event;
var keyCode = e.code || e.key;
if (keyCode == 'Enter'){
// Enter pressed
return false;
}
}
演示
到目前为止,这些答案都没有具体回答这个问题。问题分为两部分。1.按下Enter键。2.使用集中在输入上。
Jquery
$('#input-id').on("keyup", function(e) {
if (e.keyCode == 13) {
console.log('Enter');
}
});
香草JavaScript
inputId = document.getElementById('input-id');
inputId.addEventListener('keyup', function onEvent(e) {
if (e.keyCode === 13) {
console.log('Enter')
}
});
这样,只有当用户按下输入FROM时,才会检测到ENTER。
更新、更干净:使用event.key
而不是event.keyCode
不再有任意数字代码
const node = document.getElementById('co');
node.addEventListener('keydown', function onEvent(event) {
if (event.key === "Enter") {
return false;
}
});
Mozilla文档
支持的浏览器
使其跨浏览器:
document.getElementById('foo').onkeypress = function(e) {
var event = e || window.event;
var charCode = event.which || event.keyCode;
if ( charCode == '13' ) {
// Enter pressed
return false;
}
}
有关更多详细信息,请参阅此问题:javascript事件e.which?
使用event.keyCode
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
//Do something
}
此链接中已存在讨论jQuery Event Keypress:按下了哪个键?
这里有一个很好的链接,讨论了这个主题,并提供了一个工作示例
function DetectEnterPressed(e) {
var characterCode
if(e && e.which){ // NN4 specific code
e = e
characterCode = e.which
}
else {
e = event
characterCode = e.keyCode // IE specific code
}
if (characterCode == 13) return true // Enter key is 13
else return false
}
http://hspinfo.wordpress.com/2008/09/01/using-javascript-detect-enter-key-pressed-event-in-a-textbox-and-perform-the-action/
我使用这段代码,它运行良好:
document.getElementById("theIdHere").onkeypressed =
function() {
if(this.event.which === 13)
console('passed');
}
今天你可以这样做:
document.getElementById('co').addEventListener('keydown',
e => !e.repeat && e.keyCode === 13 && load());
请注意,load()
将运行一次。
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 使用 Javascript 将字段输入除以 12
- 合并来自多个字段输入的搜索结果
- 使用 Javascript 实时打印字段输入数据
- 防止AngularJS中跨路由的字段输入重复
- 引用Iframe中的字段输入
- 禁用html5”;“必需”;不显示窗体部分时的字段输入属性
- JavaScriptFormValidation-需要特定的字段输入,但使用大写/小写
- 验证VF页面上所需字段输入的Javascript不起作用
- 在没有
- 使用Jquery将字段输入值作为查询字符串附加到url
- HTML5 jQuery选择所有日期字段'输入:date'
- 将字段输入复制到另一个字段输入
- 向图像添加字段(输入)
- 动态添加字段输入不会存储值并传递给控制器
- 向输入字段输入键击
- 我如何通过javascript验证datetime字段输入
- HTML如何将用户字段输入作为json对象发送
- 如何根据'select' onchange事件将值填充到第二个输入字段?输入