[jQuery] 제이쿼리 button click trigger / enter key event

2021-03-24


Photo by De an Sun on Unsplash

위와 같은 형식의 텍스트를 입력할 수 있고 우측에 내용을 검색할 수 있는 버튼이 있는 형식이 있다. 이는 구글 / 네이버 / 다음과 같은 웹사이트에서 흔히 볼 수 있다.

 

여기서의 검색이 진행되는 방식은 흔히 버튼을 누르거나 Enter 키를 통해서 페이지가 넘어가는 형태이다. 이는 한 가지의 동작에 두 가지 방식이 적용되는 형태인데, 이를 구현하는 방법을 알아보자.


- 구현코드

 

바로 구현 코드를 첨부하였다. 코드의 내용은 버튼을 클릭하면 이벤트가 발생하여, 콘솔 창에서의 해당 input 창에 입력한 내용을 출력하고 알림 창도 뜰 수 있도록 구현하였다.

 

이후 Enter 키 입력 시에도 구현한 click 이벤트가 발생할 수 있도록 keydown시 클릭 트리거가 발생할 수 있도록 하였다. 여기서 keydown 발생 시 마다 keyCode를 체크하여, 현재 Enter키가 발생되었는지 체크하고 Enter키 발생시 click 이벤트를 불러오는 형식이다. (Enter 키의 키코드는 13이다.)

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-2.2.4.min.js" ></script>
<script type="text/javascript">
$(document).ready(function(){
	
	var $message = $("#message") //input에 입력된 내용을 가져온다.
	
	$("#mbutton").click(function(){//button 클릭이 발생했을 경우 이벤트발생
		console.log($message.val()) // input 에 작성된 내용이 콘솔창에 발생
		alert($message.val()) //input 에 작성된 내용이 알림으로 발생
	})
	
	$("#message").keydown(function(keyNum){
		//현재의 키보드의 입력값을 keyNum으로 받음
		if(keyNum.keyCode == 13){ 
			// keydown으로 발생한 keyNum의 숫자체크
			// 숫자가 enter의 아스키코드 13과 같으면
			// 기존에 정의된 클릭함수를 호출
			$("#mbutton").click()	
		}
	})
	
	
})


</script>


</head>
<body>
	<input type="text" id="message">
	<button type="button" id="mbutton">버튼</button>
</body>
</html>

- Enter Key Event 소스 코드

 

아래는 Input 창에 입력된 내용이 Enter키인지 체크하는 소스코드이다. Enter키의 keydown 발생시 실행시키고 싶은 이벤트 및 트리거를 기호에 맞게 if문 안에 넣어주면 된다.

 

	$("#input창에 ID").keydown(function(keyNum){
		if(keyNum.keyCode == 13){ 
			//호출하고자 하는 함수트리거 작성
		}
	})

메인 이미지 출처: Photo by De an Sun on Unsplash