【问题标题】:how do I call function when the user presses enter on the input当用户按输入时如何调用函数
【发布时间】:2013-12-20 06:59:11
【问题描述】:

当用户在输入时按下回车键时,我想要调用函数。

<input type='text' id='name'></input>

我找到了这段代码,但它不起作用。

$("#name").bind('keypress', function(e) {
if(e.which == 13) {
    alert('You pressed enter!');
}
});

【问题讨论】:

  • 如果您的输入是在表单中,请确保阻止默认提交事件,这可能是问题所在。
  • 它确实有效:jsfiddle.net/6CLw3
  • 改用e.keyCode == 13。我不相信which 支持跨浏览器。
  • 输入元素不需要关闭元素。如果您使用的是 xhtml,请使用
  • @broofa - 实际上,event.which 在 jQuery 中被标准化,并且可以在任何地方使用。

标签: javascript html input keypress


【解决方案1】:

您是否包含了 JQuery 库?您的代码似乎在 Chrome 中运行良好。

你也可以这样做:

$("#name").keypress(function(e) {
    if(e.keyCode == 13) {
        alert('You pressed enter!');
    }
});

JSFiddle:http://jsfiddle.net/dMt55/

非 Jquery 版本:

document.getElementById('name').onkeypress = function(e) {
    if(e.keyCode == 13) {
        alert('You pressed enter!');
    }
}

【讨论】:

  • 有没有办法在没有 JQuery 的情况下拥有相同的代码?只是纯粹的Js。
  • 编辑添加非 jquery 版本。
  • 我怎样才能做这个 NonJquery 版本,以便它在箭头键和 document.body 的 onkeydown 上?
【解决方案2】:

请试试这个;

<input type='text' id='name' />

$("#name").bind('keypress', function(event) {
                if (event.keyCode== 13) { //Enter
                  // your code 
                }
});

【讨论】:

【解决方案3】:

您可以连接自己的自定义事件 .试试这个

HTML

<input type='text' id='name'></input>

jQuery

$('#name').bind("enterKey",function(e){
   //do stuff here
});
$('#name').keyup(function(e){
    if(e.keyCode == 13)
    {
        $(this).trigger("enterKey");
    }
});

http://jsfiddle.net/x7HVQ/

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 2021-11-15
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多