개요
이벤트를 취소할 수 있는 경우, 이벤트의 전파를 막지않고 그 이벤트를 취소합니다.
구문
event.preventDefault()
예제
다음의 예제에서는 체크박스를 클릭했을 때 발생하는 동작을 멈추는 방법을 살펴보겠습니다.
<html> <head> <title>preventDefault 예제</title> <script type="text/javascript"> function stopDefAction(evt) { evt.preventDefault(); } </script> </head> <body> <p>체크박스 컨트롤을 클릭해 주세요</p> <form> <input type="checkbox" onclick="stopDefAction(event);"/> <label for="checkbox">체크박스</label> </form> </body> </html>
preventDefault의 예제를
여기에서 확인할 수 있습니다.
아래의 예제에서는, preventDefault() 를 사용해서 올바르지 않은 텍스트가 입력란에 입력되는것을 막는 방법을 설명하고 있습니다.
<html> <head> <title>preventDefault 예제</title> <script type="text/javascript"> function checkName(evt) { var charCode = evt.charCode; if (charCode != 0) { if (charCode < 97 || charCode > 122) { evt.preventDefault(); alert("소문자만 입력할 수 있습니다." + "\n" + "charCode: " + charCode + "\n" ); } } } </script> </head> <body> <p>당신의 이름을 소문자만으로 입력해주세요.</p> <form> <input type="text" onkeypress="checkName(event);"/> </form> </body> </html>
주의
이벤트를 취소하는 도중에 preventDefault를 호출하게되면, 일반적으로는 브라우저의 구현에 의해 처리되는 기존의 액션이 동작하지 않게되고, 그 결과 이벤트가 발생하지 않게됩니다.
이벤트의 취소가능 여부는 event.cancelable를 사용해서 확인할 수 있습니다. 취소불가능한 이벤트에 대해서 preventDefault를 호출해도 결과는 없습니다.
preventDefault는 DOM을 통한 이벤트의 전파를 막지않습니다. 전파를 막을때는 event.stopPropagation를 사용해주세요.