IT/development

[jQuery] 체크 이벤트 강제 발생 시키기

어흥꼬비 2025. 1. 11.

목차

    화면에 체크박스가 2개 있고, 체크박스의 change 이벤트를 감지하여 두 체크박스가 모두 체크되었을 때만 버튼을 활성화시키는 기능이 있다.

    그런데, 사용자가 직접 체크박스를 체크했을 때는 이벤트가 잘 감지되었지만, 함수 호출로 동적으로 체크박스를 체크한 경우는 감지되지 않는 문제가 있었다.

    이유는 기본적으로 체크박스를 동적으로 조작하면 이벤트가 발생하지 않기 때문에 그렇다.

    그래서 trigger.('이벤트명')으로 이벤트를 강제로 발생시켜 해결 했다.

    수정 전

    function check(checkId, target) { 
        document.getElementById(target).classList.add('d-none');  
        $("#" + checkId).prop('checked', true);       
      }

    수정 후 

    // 생략...
    $("#" + checkId).prop('checked', true).trigger("change");

    개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.

    틀린 점 있을 경우 댓글 부탁드립니다.

    댓글