본문 바로가기
CodeIt_Sprint/JavaScript_중급

(8)JavaScript중급_3_5_event 객체의 프로퍼티 메소드 : preventDefault()

by 코잼민 2024. 11. 13.

#알아야 할 개념 :

● 개념 : event 객체프로퍼티 메소드 : preventDefault();

○ 정의 : event객체의 type('click', 'keydown' , 'contextmenu')의 이벤트 핸들러를 적용 못하도록 막는 메소드이다.

○ 보통 사용 패턴 :

해당태그 .addEventfunction( event.type , function (event) ){

event.pretendDefault() //1_ 막기 

alert("막았어 병신아") // 2_ 막혔다고 알림 경고창 출력 메소드

}

#Default 상황 :

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>JS with Codeit</title>
</head>
<body>
	<a id="link" href="https://www.codeit.kr/">Link</a>
	<input type="checkbox" id="checkbox">
	<input type="text" id="input" placeholder="input">
	<p id="text">
		I Love Codeit!
	</p>
  <script src="index.js"></script>
</body>
</html>

● 실습 1 : JavaScript 코드로 Link를 왼쪽 마우스 클릭을 할 시 , href 링크로 이동되지 않아지고, "꺼져"라는 알림창 출력하게 하기


    const link = document.querySelector('#link');

    link.addEventListener('click',function(event){

      //1. 막기
      event.preventDefault();

      //2. 알람창
      alert('꺼져');


    });

 

● 실습 2 : 

  • checkBox가 checked가 되어있지 않으면, input창 입력 X
  • checkBox가 checked 되어있고, input창에 키보드 입력시 , 텍스트 색깔 빨간색으로 만들기
<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="UTF-8">
  <title>JS with Codeit</title>
  <style>
    .done{
      color:red;
    }
  </style>
</head>
<body>
  <a id="link" href="https://www.codeit.kr/">Link</a>
  <input type="checkbox" id="checkbox">
  <input type="text" id="input" placeholder="input">
  <p id="text">
    I Love Codeit!
  </p>
  <script>

    const CheckBox = document.querySelector('#checkbox');
    const Input = document.querySelector('#input');

    Input.addEventListener('keydown', function (event) {

      if (!CheckBox.checked) {
        Input.value = "";   
        //event.preventDefault();

        alert('체크박스 체크하고, 키보드 입력해 병신아');
      
        setTimeout(function(){
          event.value = "";
        }, 0);
      }

      event.target.classList.add("done");
    });

  </script>
</body>

</html>

● 실습 3 : 해당 웹페이지에서 오른쪽 마우스 클릭에서 메뉴창 안나오도록 하기 //Ctrl + c , v 방지

document.addEventListener('contextmenu',function(event){
    event.preventDefault();
    alert('복붙 하지마 시발련아');
  });