보통 selectbox를 사용하다 보면 해당 값이 바뀌기 전의 값으로 되돌리는 기능이 필요할 때가 있다.
이럴때는, 해당 오브젝트에 focus()이벤트가 발생했을때 값을 미리 저장해 놓으면 가능하다.
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
aa = '';
$(function(){
setTimeout("window.self.focus();", 1000 );
$('#dd').focus( function(){
aa = $(this).val();
}).change(function(){
$('#dd').trigger( "blur");
$('#test').append( "before value : "+ aa +"<br>");
});
});
</script>
<select id='dd'>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>
<div id='test'></div>
하지만, 보통 한번 focus를 가진 상태에서 여러번 값을 바꿀수도 있다.
이럴땐, trigger()를 이용해서 강제로 해당 오브젝트에서 blur를 실행시켜 주어야, 다시 focus()이벤트가 일어나게 하는 편법을 사용하면 된다.