버전
Bootstrap 5.13
Error
modal에 값을 전달하기 위해 script로 .modal("show")를 사용하여 변환하는 과정에서 오류가 생겼습니다.
modal.js:313 Uncaught TypeError: Cannot read properties of undefined (reading 'classList') at he._isAnimated (modal.js:313) at he._initializeBackDrop (modal.js:195) at new he (modal.js:83) at Function.getOrCreateInstance (base-component.js:55) at HTMLButtonElement.<anonymous> (modal.js:421) at HTMLDocument.s (event-handler.js:119)
code
<button type="button" class="btn btn-primary restBtn" data-bs-toggle="modal" data-method="POST"> <div class="modal fade" id="memberRestModal" tabindex="-1" aria-labelledby="newMemberModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="newMemberModalLabel">New message</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <form class="row g-3" id="newMemberInfo-Form"> <div class="col-md-6"> <label for="id" class="col-form-label">Id:</label> <input type="text" name="userId" class="form-control" id="id"> </div> <div class="col-md-6"> <label for="name" class="col-form-label">Name:</label> <input type="text" name="userName" class="form-control" id="name"> </div> <div class="mb-3"> <label for="pass" class="col-form-label">Password:</label> <input type="text" name="userPass" class="form-control" id="pass"> </div> <div class="mb-3"> <label for="confirm-pass" class="col-form-label">Confirm Password:</label> <input type="text" class="form-control" id="confirm-pass"> </div> <fieldset class="row mb-3"> <legend class="col-form-label col-sm-2 pt-0">IsAdmin</legend> <div class="col-sm-10"> <div class="form-check"> <input class="form-check-input" type="radio" name="isAdmin" id="isAdminY" value="1" > <label class="form-check-label" for="isAdminY"> yes </label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="isAdmin" id="isAdminN" value="0" checked> <label class="form-check-label" for="isAdminN"> no </label> </div> </div> </fieldset> </form> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <button type="submit" class="btn btn-primary" id="addNewMemberBtn" data-path="member" data-method="POST">Add</button> </div> </div> </div> </div> </div>
script
$("#content-body").on("click", ".restBtn", function (){ let method = $(this).data("method"); $("#addNewMemberBtn").data("method", method); console.log($("#addNewMemberBtn").data("method")); $("#memberRestModal").modal("show"); })
기능상 아무런 이상도 없지만 개발자 도구로 확인 시 버튼 클릭마다 error가 발생.
Reason
<button>
태그에 data-bs-toggle
을 지워주니 해결됬습니다. data-bs-
관련 속성들은 script 없이 창을 띄울 때 사용하는 속성인 듯 합니다.
그러니 javascript로 변환 시 data-bs-
속성은 삭제 후 처리해 주시면 error가 발생하지 않습니다.
728x90
반응형
'Languages > javaScript' 카테고리의 다른 글
[react] package.json - eslint 오류 (0) | 2023.04.26 |
---|---|
[javascript]Serialize시킬 시 주의할 점 (0) | 2021.11.22 |
[jQuery]< 1.6 or + prop() vs attr() (0) | 2021.11.12 |
[javaScript]Element.innerHTML는<script>를 실행시키지 않습니다. (3) | 2021.10.18 |
[javaScript] 기존 jQuery의 ajax를 fetch로 바꿔 사용하기(기초) (0) | 2021.10.08 |