[JavaScript] 브라우저의 기본 동작 막기 event.preventDefault()

2024. 11. 7. 17:44·Category/JavaScript
728x90

JavaScript에서 event.preventDefault()는 브라우저의 기본 동작을 막는 메서드입니다. 이 메서드는 특히 웹 개발에서 폼 제출, 링크 클릭, 키 입력 등의 이벤트가 발생했을 때 기본적으로 수행되는 브라우저의 동작을 방지하고, 개발자가 정의한 로직을 실행하고자 할 때 유용하게 사용됩니다.

기본 동작이란?

HTML 요소에는 특정 이벤트가 발생할 때 수행되는 기본적인 동작들이 있습니다. 예를 들어:

  • <form> 요소에서 submit 이벤트가 발생하면, 기본적으로 페이지가 새로고침되거나 폼 데이터가 전송됩니다.
  • <a> 태그의 링크를 클릭하면, 지정된 URL로 이동합니다.
  • input[type="checkbox"]를 클릭하면 체크박스가 선택되거나 선택 해제됩니다.

이런 기본 동작들은 브라우저가 자동으로 처리하지만, 때로는 이런 동작을 방지하고 JavaScript 코드로 원하는 행동을 정의해야 할 때가 있습니다. 이때 event.preventDefault();를 사용하여 기본 동작을 막고 개발자가 원하는 작업만 수행할 수 있습니다.

event.preventDefault();의 사용 예시

1. 폼 제출 시 페이지 새로고침 방지 폼을 제출할 때 페이지가 새로고침되는 것을 막고, JavaScript로 직접 데이터를 처리하거나 서버와 통신을 하고자 할 때 event.preventDefault();를 사용합니다.

const form = document.querySelector("form");

form.addEventListener("submit", (event) => {
    event.preventDefault(); // 기본 동작인 새로고침 방지
    const inputData = form.querySelector("input").value;
    console.log("폼 데이터:", inputData);
    // 여기서 AJAX나 fetch를 이용해 서버로 데이터를 전송할 수 있습니다.
});

이 코드에서 event.preventDefault();가 없다면, 폼을 제출할 때 페이지가 새로고침됩니다. preventDefault()를 사용함으로써 새로고침 없이 JavaScript로 데이터를 처리할 수 있습니다.

 

2. 링크 클릭 시 기본 이동 방지 특정 조건에서 링크가 클릭되었을 때 이동하지 않도록 하거나, 다른 작업을 수행하도록 하고 싶을 때 사용합니다.

const link = document.querySelector("a");

link.addEventListener("click", (event) => {
    event.preventDefault(); // 기본 동작인 링크 이동 방지
    console.log("링크가 클릭되었지만 이동하지 않음");
});

이 코드에서는 <a> 태그의 링크를 클릭해도 페이지가 이동하지 않고, 콘솔에 메시지만 출력됩니다. 이를 통해 특정 링크를 클릭했을 때 별도의 JavaScript 동작을 수행할 수 있습니다.

 

3. 컨텍스트 메뉴 방지 마우스 오른쪽 클릭 시 나타나는 기본 컨텍스트 메뉴(우클릭 메뉴)를 막고 커스텀 메뉴를 표시할 때 사용합니다.

document.addEventListener("contextmenu", (event) => {
    event.preventDefault(); // 기본 컨텍스트 메뉴 표시 방지
    console.log("커스텀 메뉴 표시");
    // 여기에 커스텀 메뉴 표시 코드를 추가할 수 있습니다.
});

이 코드는 마우스 오른쪽 클릭 시 나타나는 기본 컨텍스트 메뉴를 방지하고, 커스텀 동작을 실행하도록 합니다.

event.preventDefault();의 유용성

event.preventDefault();는 웹 애플리케이션에서 사용자 경험을 제어할 때 매우 유용합니다. 기본 동작을 방지하고 개발자가 정의한 로직을 실행할 수 있기 때문에, AJAX 요청을 통한 비동기 폼 제출, 단일 페이지 애플리케이션(SPA)에서의 링크 처리, 특정 조건에 따른 링크 비활성화 등 다양한 상황에서 사용됩니다. 요약하자면, event.preventDefault();는 HTML 요소의 기본 동작을 제어하여 더 유연하고 강력한 웹 애플리케이션을 개발할 수 있도록 도와주는 메서드입니다.

728x90

'Category > JavaScript' 카테고리의 다른 글

JavaScript에서 export와 import의 개념과 사용법  (0) 2025.03.15
Axios: HTTP 요청을 쉽게 만드는 JavaScript 라이브러리  (3) 2024.11.11
자바스크립트 reduce()  (1) 2024.10.29
자바스크립트 filter()  (0) 2024.10.29
자바스크립트 + 연산자  (0) 2024.10.29
'Category/JavaScript' 카테고리의 다른 글
  • JavaScript에서 export와 import의 개념과 사용법
  • Axios: HTTP 요청을 쉽게 만드는 JavaScript 라이브러리
  • 자바스크립트 reduce()
  • 자바스크립트 filter()
Corinee
Corinee
  • Corinee
    Coding Note
    Corinee
  • 전체
    오늘
    어제
    • 분류 전체보기 (361)
      • Category (354)
        • Algorithm (7)
        • SQL (2)
        • Java (4)
        • C (9)
        • React (7)
        • JavaScript (9)
        • CSS (2)
        • Node (1)
        • SpringBoot (26)
        • Database (3)
        • Network (1)
        • Django (6)
        • Python (22)
        • Flask (4)
        • iOS (25)
        • Swift (4)
        • Flutter (11)
        • Dart (3)
        • Git (1)
        • Firebase (1)
        • Gof (1)
        • 정보처리기사 (112)
        • AI (5)
        • NestJs (4)
        • Docker (1)
        • 사이드 프로젝트 (1)
        • Note (80)
        • Socket (1)
        • 개인 정보 처리 방침 (1)
        • 면접 (0)
        • Vue.js (0)
      • Archive (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    json.parse(json.stringify())
    defaultdict
    쉽게 풀어쓴 C언어 Express
    중첩 함수(nested function)
    intellij 콘솔 한글 깨짐
    프로세스 강제 종료
    Collections
    시맨틱 버전(semantic versioning
    react
    jackson 라이브러리
    ajax (asynchronous javascript and xml)
    mermaid-cli
    inp
    core web vitals
    mcp server
    원시값(primitive)
    styled-components
    public vs assets
    Jest
    named export vs default export
    react router
    math.h
    소프트웨어 버전 관리
    x.y.z (메이저.마이너.패치)
    stdlib.h
    semver)
    chrome extension 자동 배포
    structuredclone()
    useEffect
    counter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Corinee
[JavaScript] 브라우저의 기본 동작 막기 event.preventDefault()
상단으로

티스토리툴바