javascript - 텍스트 입력 필드에서 Enter 키를 감지합니다.


특정 입력시 Enter 키를 누르면 기능을 수행하려고합니다.

내가 뭘 잘못하고 있니?

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

.input1 함수를 눌렀을 때 함수가 수행된다면 이렇게 말하는 것이 더 좋은 방법일까요?



Answers



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


//keyup not compatible with Jquery select(), Keydown is.



$(document).keyup(function (e) {
    if ($(".input1:focus") && (e.keyCode === 13)) {
       alert('ya!')
    }
 });

또는 입력 자체에 바인딩합니다.

$('.input1').keyup(function (e) {
    if (e.keyCode === 13) {
       alert('ya!')
    }
  });

필요한 keyCode를 알아 내려면 웹 사이트 http://keycode.info를 사용하십시오.




event.key === "Enter"

최근이고 훨씬 더 깨끗한 : event.key 사용하라. 더 이상 임의의 숫자 코드는 없습니다!

const node = document.getElementsByClassName(".input")[0];
node.addEventListener('keydown', function(event) {
    if (event.key === "Enter") {
        // Do work
    }
});

Mozilla 문서 도구

지원되는 브라우저




텍스트 상자에 Enter 키를 감지하려면이 방법을 사용 Enter .

$(function(){

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

});



이 질문에 대답하기에는 너무 늦었을 수도 있습니다. 그러나 다음 코드는 단순히 Enter 키를 방지합니다. 복사하여 붙여 넣기 만하면됩니다.

        <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>



내가 찾은 가장 좋은 방법은 keydown 사용하는 것입니다 (키 keyup 잘 작동하지 않습니다).

참고 : 일반적으로 Enter 키를 누를 때 몇 가지 작업을 수행하기를 원할 때만 양식 제출을 원하지 않는다고 생각하기 때문에 양식 제출을 비활성화했습니다.

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



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