我试着做一个函数,如果在特定输入时按下enter键。

我做错了什么?

$(document).keyup(function (e) {
    if ($(".input1").is(":focus") && (e.keyCode == 13)) {
        // Do something
    }
});

有没有更好的方法,如果回车按。input1 do function?


当前回答

$(".input1").on('keyup', function (e) {
    if (e.key === 'Enter' || e.keyCode === 13) {
        // Do something
    }
});

// e.key is the modern way of detecting keys
// e.keyCode is deprecated (left here for for legacy browsers support)
// keyup is not compatible with Jquery select(), Keydown is.

其他回答

我发现最好的方法是使用keydown (keyup对我来说不太好用)。

注意:我还禁用了表单提交,因为通常当你喜欢按Enter键时做一些动作时,你唯一不喜欢的是提交表单:)

$('input').keydown( function( event ) {
    if ( event.which === 13 ) {
        // Do something
        // Disable sending the related form
        event.preventDefault();
        return false;
    }
});

这段代码为我处理了整个站点中的每个输入。它检查INPUT字段中的ENTER键,不会在TEXTAREA或其他地方停止。

$(document).on("keydown", "input", function(e){
 if(e.which == 13){
  event.preventDefault();
  return false;
 }
});

尝试检测在文本框中按下的Enter键。

$(document).on("keypress", "input", function(e){
    if(e.which == 13){
        alert("Enter key pressed");
    }
});

DEMO

现在回答这个问题可能已经太晚了。但是下面的代码只是阻止输入键。复制粘贴就可以了。

        <script type="text/javascript"> 
        function stopRKey(evt) { 
          var evt = (evt) ? evt : ((event) ? event : null); 
          var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
          if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
        } 

        document.onkeypress = stopRKey; 

        </script>

尝试检测在文本框中按下的Enter键。

$(function(){

$(".input1").keyup(function (e) {
    if (e.which == 13) {
        // Enter key pressed
    }
 });

});