잡동사니/- 일기

preventDefault()와 keyCode 그리고 Focus()...

shovelman 2016. 6. 1. 23:46



지난번에 말했듯이, 아직 게시판을 가지고 놀고있다.

게시판에는 당연하게 검색 기능이 있어야겠지...

그래서 검색기능을 만들었다.


검색 Button을 클릭하면 검색이 잘 된다.

예외 처리도 잘됬고...


그런데, 이놈의 Keyboard로 Enter 치면 예외 처리가 안된다.

물론... Keyboard로 검색했을 경우에 대해서 

Event Handler에 처리를 안해두었으니까....

그래서 jQuery 'keyup' 이벤트를 걸어두었다.


하지만, 뭔가 이상해졌다...


Button 만들때 쓴 Class가 기존에 있던 것이어서

Enter 처리를 하게 만들어뒀었는듯...


그래서 내꺼에 맞춰서 사용해야하다보니


event.preventDefault();


이 녀석으로 기본 동작을 멈춰버리게했다.


좋아... 잘 진행되는거 같았는데...

Enter에 대한 처리가 계속 문제였다.


예를 들어 예외가 발생하여 팝업창이 켜져서 Enter를 치면 

또 Enter에 대한 Event가 발생했다...


(문제의 녀석...)


Enter를 쳤을 때 Focus가 계속해서 유지되고 있었기 때문에 계속 이벤트가 걸리는 것이었다.

그래서 Focus를 옮겨버렸다.


하하.. 끝.