본문 바로가기
Fiori/UI5

[JavaScript] 이벤트

by clode 2023. 3. 7.
728x90
반응형

이벤트 등록하는 방법에는 3가지가 있다.

inline 방식

태그안에 넣는 방법이다. 재사용이 불가능하다는 단점이 있다.

<body>
 <button onclick="myButton(event);">buttonType</button>
 <script>
    function myButton(oEvent) {
     console.log(oEvent.target);
     console.log(oEvent.type);
     console.log(oEvent);
      }
 </script>
</body>

propertyListener 방식

마지막에 셋팅한 event만 실행한다.

<body>
  <button id="targetButton">buttonType</button>
  <input type="text" placeholder="-빼고 숫자만 입력하세요" id="targetInput" onchange="myInput(event);"></input>
  <script>
      var oTargetButton = document.querySelector("#targetButton");
      var oTargetInput = document.querySelector("#targetInput");

      oTargetButton.onclick = function (oEvent) { //function(익명함수), 기명함수도 가능
        alert("첫번째 클릭");
      }
      oTargetButton.onclick = function (oEvent) {
        alert("두번째 클릭");
      }
      oTargetInput.onchange = function (oEvent) {
        alert("oEvent.target : " + oEvent.target + ", oEvent.type :" + oEvent.type);
      }
 </script>
</body>

실행시 두번째 클릭 alert만 나온다.

addEventListener 방식

세팅한 Event 모두 실행한다.

문법: addEventListener("이벤트종류","콜백함수");

<body>
  <button id="targetButton">buttonType</button>
  <input type="text" placeholder="-빼고 숫자만 입력하세요" id="targetInput" onchange="myInput(event);"></input>
  <script>
      oTargetButton.addEventListener("click", function(oEvent){
         alert("첫번째 클릭");
      });
      oTargetButton.addEventListener("click", function(oEvent){
         alert("두번째 클릭");
      });
      oTargetInput.addEventListener("change", function(oEvent){
         alert("oEvent.target : " + oEvent.target + ", oEvent.type :" + oEvent.type);
      });
  </script>
</body>

모두 실행되기 때문에 첫번째클릭, 두번째클릭 알림창이 모두 나온다.

숫자만 입력할 수 있게 하는 이벤트

<script>
      function myInput(oEvent) {
        var sInputValue = oEvent.target.value; //target으로 inputvalue 가져옴
        var oRegExp = /^[0-9]/g;

        if(!oRegExp.test(sInputValue)){
          alert("숫자만 입력하십시오");
          oEvent.target.value = ""; //default값 넣어줄수도 있음
          oEvent.target.style.backgroundColor = "blue"; //잘못입력하면 입력필드배경색 바꿈
          return;
        }
      }
</script>
728x90
반응형

'Fiori > UI5' 카테고리의 다른 글

[JavaScript] jQuery  (0) 2023.03.07
[JavaScript] JSON  (0) 2023.03.07
[JavaScript] Element 속성  (0) 2023.03.07
[JavaScript] Element 식별자  (0) 2023.03.06
[JavaScript] 문서 객체 모델(DOM) 접근  (0) 2023.03.06

댓글