change이벤트는 변경이 끝나면 발생하는 이벤트다. 변경이 생길때마다 발생하는 이벤트가 아님을 유의하자.
텍스트입력 요소노드는 변경이 끝나고 포커스를 잃을때 change이벤트가 발생한다.
input이벤트는 값이 변경될때마다 발생한다. 마우스를 사용하여 글자를 붙여 넣거나 음성인식 기능을 사용해 글자를 입력할 때처럼 키보드가 아닌 다른 수단을 사용하여 값을 변경시킬 때도 input 이벤트가 발생한다.
input이벤트는 값이 변경되자마자 발생하기때문에 event.preventDefault()로 막을 수 없다.
cut, copy, paste
<input type="text" id="input">
<script>
input.oncut = input.oncopy = input.onpaste = function(event) {
alert(event.type + ' - ' + event.clipboardData.getData('text/plain'));
return false;
};
</script>
텍스트뿐만 아니라 모든 것을 복사·붙여넣기 할 수 있기때문에 OS 파일 매니저에서 파일을 복사해 붙여넣을 수 있다.
따라서 꼭 필요한 경우아니면 붙여넣기를 막는 것이 좋다.