ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • javascript form 폼 조작
    Javascript 2024. 3. 27. 21:04

    input, textarea

    input.value / textarea.value / input.checked

    *textarea.innerHTML은 사용하지 마세요 - 처음 열 당시의 HTML만 저장되어 최신 값을 구할 수 없습니다.

     

    select, option

    <select id="select">
      <option value="apple">Apple</option>
      <option value="pear">Pear</option>
      <option value="banana">Banana</option>
    </select>
    
    <script>
      // 세 가지 코드의 실행 결과는 모두 같습니다.
      select.options[2].selected = true;
      select.selectedIndex = 2;
      select.value = 'banana';
    </script>

    👉🏻 select 에 Banana가 기본으로 선택되어있음.

     

    onfocus, onblur : 두 이벤트는 버블링되지 않고 input 필드에서만 트리거 된다.

    input에 focus 시 form에 변화를 주고 싶다면 onfocus가 아닌 focusin/focusout을 사용해야한다.

    <style>
      .invalid { border-color: red; }
      #error { color: red }
    </style>
    
    이메일: <input type="email" id="input">
    
    <div id="error"></div>
    
    <script>
    input.onblur = function() {
      if (!input.value.includes('@')) { // @ 유무를 이용해 유효한 이메일 주소가 아닌지 체크
        input.classList.add('invalid');
        error.innerHTML = '올바른 이메일 주소를 입력하세요.'
      }
    };
    
    input.onfocus = function() {
      if (this.classList.contains('invalid')) {
        // 사용자가 새로운 값을 입력하려고 하므로 에러 메시지를 지움
        this.classList.remove('invalid');
        error.innerHTML = "";
      }
    };
    </script>

    *onblur 대상으로부터 벗어났을 때 해당되었던 대상에서 일어나는 이벤트

     

    input 이벤트(수정이 일어날 때마다 이벤트를 실행하고 싶을 때 적절하다.) / change와 다르게 즉시 실행됨

    <input type="text" id="input"> oninput: <span id="result"></span>
    <script>
      input.oninput = function() {
        result.innerHTML = input.value;
      };
    </script>

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    'Javascript' 카테고리의 다른 글

    기타 문서  (0) 2024.04.01
    defer, async  (1) 2024.03.29
    Pointer event 포인터 이벤트  (0) 2024.03.21
    이벤트 기초  (0) 2024.03.14
    자바스크립트 문서  (0) 2024.03.13

    댓글

Designed by Tistory.