select tag의 OnChange event 처리 삽질

HTML select tag에는 선택된 대상이 변화될 때 발생하는 OnChange라는 이벤트가 있다.
요즘 하고있는 뻘짓 (…) 에서 이 이벤트를 받아서, 페이지 내의 이미지를 바꾸는 스크립트를 만들었는데, IE에서는 키보드 커서키로 대상을 바꿀 때도 OnChange event가 발생되고 전달되는데, Firefox에서는 포커스가 없어질 때만 event가 생기는 것이다 -_-;

그래서 구글링 + 스펙 검색으로 얻어낸 결과: http://www.w3.org/TR/html4/interact/scripts.html#adef-onchange

onchange = script [CT]
The onchange event occurs when a control loses the input focus and its value has been modified since gaining focus. This attribute applies to the following elements: INPUT, SELECT, and TEXTAREA.
…그런 것이다 표준에서는 `focus를 잃을 때’ 발생하게 되어있는 것이다. 문제의 원인은 알았다 치고 이걸 어찌 해결해야 할려나 Orz

… 말 그대로 꼼수로 처리했음. 강제로 focus를 다른 텍스트 입력창으로 옮겼다가 다시 가져온 후, 10ms(?) 후에 원래 불려야하는 함수를 호출하는 것으로;

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

Leave a Reply