jQuery - keydown / keypress / keyup ENTERKEY检测?

时间:2010-08-11 21:28:52

标签: jquery

尝试让jQuery检测输入输入,但检测到空格和其他键,未检测到输入。下面有什么问题:

$("#entersomething").keyup(function(e) {
    alert("up");
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code==13) {
        e.preventDefault();
    }

    if (code == 32 || code == 13 || code == 188 || code == 186) {
        $("#displaysomething").html($(this).val());
});

<input id="entersomething" />
<div id="displaysomething"&gt;&lt;/div&gt;

http://jsfiddle.net/zeRrv/

4 个答案:

答案 0 :(得分:78)

的JavaScript / jQuery的

$("#entersomething").keyup(function(e){ 
    var code = e.which; // recommended to use e.which, it's normalized across browsers
    if(code==13)e.preventDefault();
    if(code==32||code==13||code==188||code==186){
        $("#displaysomething").html($(this).val());
    } // missing closing if brace
});

HTML

<input id="entersomething" type="text" /> <!-- put a type attribute in -->
<div id="displaysomething"></div>

答案 1 :(得分:3)

我认为你会对keyup事件感到困难 - 因为它首先触发按键 - 如果你想要排除Enter键,你将无法阻止第二个传播。

答案 2 :(得分:1)

答案 3 :(得分:0)

更新:如今,我们拥有移动键盘和自定义键盘,我们无法继续信任这些任意键代码,例如13和186。换句话说,停止使用event.which / event.keyCode并开始使用{{1 }}:

event.key