[ JavaScript ] 자바스크립트 기본 동작 취소(preventDefault)

2021. 2. 10. 01:47·Archive/Develop
728x90
반응형

이미지 출처 :    https://commons.wikimedia.org/wiki/File:JavaScript-logo.png

 

 

 

 

 

 

해당 포스팅은 생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅임을 미리 알립니다.

 

 

 


 

자바스크립트 기본 문법 : 기본 동작의 취소

 

 

 

웹브라우저의 구성요소들은 각각 기본적인 동작 방법을 가지고 있습니다.

 

텍스트 필드에 포커스를 준 상태에서 키보드 입력이 들어오면 텍스트가 입력되고,

 

폼에서 submit 버튼을 누르면 데이터가 전송됩니다.

 

a 태그를 클릭하면 href 속성의 URL로 이동합니다.

 

 

 

이러한 기본적인 동작들을 기본 이벤트라고 하는데 ,

사용자가 만든 이벤트를 이용해서 이러한 기본 동작을 취소할 수 있습니다.

 

 

 

 

inline 방식

 

 

이벤트의 리턴값이 false이면 기본 동작이 취소됩니다.

 

 

 

예시를 들어보도록 하겠습니다.

 

 

 

<p>
    <label>prevent event on</label><input id="prevent" type="checkbox" name="eventprevent" value="on" />
</p>
<p>
    <a href="http://opentutorials.org" onclick="if(document.getElementById('prevent').checked) return false;">opentutorials</a>
</p>
<p>
    <form action="http://opentutorials.org" onsubmit="if(document.getElementById('prevent').checked) return false;">
            <input type="submit" />
    </form>
</p>

 

 

 

 

 

 

위 그림과 같이 prevent event on 에 체크가 되어있으면 a 태그를 클릭해도 url 이 넘어가지 않고,

 

제출 버튼을 클릭해도 submit 이 되지 않는 것을 확인할 수 있습니다.

 

 

 

 

 

 

property 방식

 

 

 

 

이 또한 리턴 값이 false 면 기본 동작이 취소됩니다.

 

 

 

<p>
    <label>prevent event on</label><input id="prevent" type="checkbox" name="eventprevent" value="on" />
</p>
<p>
    <a href="http://opentutorials.org">opentutorials</a>
</p>
<p>
    <form action="http://opentutorials.org">
            <input type="submit" />
    </form>
</p>
<script>
    document.querySelector('a').onclick = function(event){
        if(document.getElementById('prevent').checked)
            return false;
    };
     
    document.querySelector('form').onclick = function(event){
        if(document.getElementById('prevent').checked)
            return false;
    };
 
</script>

 

 

 

 

 

addEventListener 방식

 

 

이 방식에서는 이벤트 객체의 preventDefault 메소드를 실행하면 기본 동작이 취소됩니다.

 

 

앞선 두개가 리턴값을 false 로 동작을 취소하는 것과는 차이가 있습니다.

 

 

 

 

<p>
            <label>prevent event on</label><input id="prevent" type="checkbox" name="eventprevent" value="on" />
        </p>
        <p>
            <a href="http://opentutorials.org">opentutorials</a>
        </p>
        <p>
            <form action="http://opentutorials.org">
                    <input type="submit" />
            </form>
        </p>
        <script>
            document.querySelector('a').addEventListener('click', function(event){
                if(document.getElementById('prevent').checked)
                    event.preventDefault();
            });
             
            document.querySelector('form').addEventListener('submit', function(event){
                if(document.getElementById('prevent').checked)
                    event.preventDefault();
            });
 
        </script>

 

 

 

 

참고로, ie9 이하 버전에서는 event.returnValue 를 false 로 하는 방식을 사용해야합니다.

 

 

 

 

 

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ JavaScript ] 자바스크립트 기본 문법 | 문서로딩(load, DOMContentLoaded) | 스크립트 태그 위치  (0) 2021.02.10
[ JavaScript ] 자바스크립트 기본 문법 | 폼(form)태그 이벤트(submit, change, focus,blur)  (0) 2021.02.10
[ JavaScript ] 자바스크립트 기본 문법 | 이벤트 전파(버블링과 캡쳐링)  (0) 2021.02.09
[ JavaScript ] 자바스크립트 기본 문법 | 이벤트리스너(addEventListener, 클릭 이벤트)  (0) 2021.02.09
[ JavaScript ] 자바스크립트 기본 문법 | 문서의 기하학적 특성(스크롤 제어, Viewport, getBoundingClientRect())  (0) 2021.02.08
'Archive/Develop' 카테고리의 다른 글
  • [ JavaScript ] 자바스크립트 기본 문법 | 문서로딩(load, DOMContentLoaded) | 스크립트 태그 위치
  • [ JavaScript ] 자바스크립트 기본 문법 | 폼(form)태그 이벤트(submit, change, focus,blur)
  • [ JavaScript ] 자바스크립트 기본 문법 | 이벤트 전파(버블링과 캡쳐링)
  • [ JavaScript ] 자바스크립트 기본 문법 | 이벤트리스너(addEventListener, 클릭 이벤트)
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

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

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    코드업 파이썬 기초 100제
    Python
    자바스크립트 객체
    Oracle
    파이썬 기초
    Codeup
    카카오 100일 프로젝트
    코드업
    보안뉴스
    파이썬 기초 문제
    백준 풀이
    백준 문제풀이
    백준 파이썬
    파이썬 알고리즘
    Django
    파이썬 문제
    파이썬
    장고
    오라클
    자바스크립트
    docker
    C++
    비박스
    자바스크립트 API
    파이썬 백준
    백준
    코드업 기초
    javascript
    Git
    oracle db
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ JavaScript ] 자바스크립트 기본 동작 취소(preventDefault)
상단으로

티스토리툴바