
HTML 태그와 브라우저는 각 요소에 다양한 기본 동작을 제공한다. 이러한 동작은 사용자 경험을 풍부하게 하지만, 때로는 원하는 동작을 구현하기 위해 이러한 기본 동작을 제어해야 할 필요가 있다.
<a> 태그href 속성에 설정된 주소로 페이지가 이동.<input> 태그이 외에도 브라우저는 각 태그와 상황에 따라 다양한 기본 동작을 제공한다.
preventDefault() 메서드를 사용하면 특정 이벤트의 기본 동작을 막을 수 있다. 이 메서드는 이벤트가 발생했을 때 브라우저가 수행하는 기본적인 동작을 차단한다.
아래 코드는 링크 클릭 시 기본 동작(페이지 이동)을 막고 경고창을 띄운다:
<a href="https://example.com" id="myLink">Example</a>
<script>
document.getElementById('myLink').addEventListener('click', (event) => {
event.preventDefault(); // 기본 동작 막기
alert('지금은 이동할 수 없습니다.');
});
</script>
체크박스 클릭 시 텍스트 입력창의 활성화 상태를 제어하는 예제:
<input type="checkbox" id="myCheckbox">
<label for="myCheckbox">체크박스</label>
<input type="text" id="myInput" placeholder="입력 가능">
<script>
document.getElementById('myCheckbox').addEventListener('click', (event) => {
const input = document.getElementById('myInput');
if (event.target.checked) {
input.disabled = true;
input.placeholder = '입력 불가';
} else {
input.disabled = false;
input.placeholder = '입력 가능';
}
});
</script>
마우스 오른쪽 클릭 시 기본 동작(컨텍스트 메뉴 열기)을 막는 예제:
<div id="noRightClick">오른쪽 클릭 금지 영역</div>
<script>
document.getElementById('noRightClick').addEventListener('contextmenu', (event) => {
event.preventDefault(); // 기본 동작 막기
alert('오른쪽 클릭이 방지되었습니다.');
});
</script>
폼 제출 버튼 클릭 시 데이터를 전송하지 않고 사용자 정의 동작을 수행하는 예제:
<form id="myForm">
<input type="text" placeholder="이름 입력">
<button type="submit">제출</button>
</form>
<script>
document.getElementById('myForm').addEventListener('submit', (event) => {
event.preventDefault(); // 기본 동작 막기
alert('폼 제출이 방지되었습니다.');
});
</script>
브라우저의 기본 동작을 막을 때는 다음 사항을 고려해야 한다:
preventDefault()는 반드시 필요한 상황에서만 사용해야 한다.preventDefault() 메서드를 사용하면 특정 이벤트의 기본 동작을 막을 수 있다.