본문 바로가기

웹개발

[jQuery] keyup 이벤트에 focus를 잃을경우 이벤트가 발생하는 현상.

간단한 회원가입폼을 작성하던 도중 ID중복체크를 위해 jqeury에 keyup이벤트를 사용하였다.

크롬에서 id에 입력을 하던도중 (id에 focus가 있는상태) 다른창을 클릭하면 keyup이벤트가 다시한번 발생하는 것이다.

그냥 둬도 기능상에 문제는 없지만, DB조회를 한번더 하므로.. 원인을 찾아본느데..

자료도 없을뿐더러, 잘 안되네.. 임시방편으로 발생하는 이벤트 KEYCODE값을 확인해보니 229번????


약간 버그같기도 하다. IE에서는 발생하지 않는데 크롬에서만 발생한다. (내가 확인한바로)

임시방편으로 아래와 같이 처리하였다. 

더 좋은 방법이 있으면 댓글 부탁드립니다.



 $("#id").keyup(function(e){			   
		   if(this.value.length > 3){
			   // jquery버그? focus를 잃을때 발생한다.. 원인불명-_-
			   //if( e.keyCode == 229 ) return;
			   $.ajax({
				   url: './idDupCheck',					   
				   data:{userId:this.value},
				   success: function(data) {
				       if( data == 0 ){
				    	   $("#idInfo").html("사용할 수 있는 ID입니다. ")
				       }
				   }
			   });  
		   }else{
			   $("#idInfo").html("ID는 4글자이상 입력하십시오.");
		   };
	   });