버튼을 클릭하면 display:none 되어있던 div가 나오는 코드를 만들었다.
(div는 css에서 display: none 처리되어있음)
<button id="addScheduleButton" class="btn btn-primary">내 여행 코스에 넣기</button>
<div id="hiddenDiv">
<p>코스 추가
</div>
<script>
document.getElementById('addScheduleButton').addEventListener('click', function(){
let hiddenDiv = document.getElementById('hiddenDiv');
if(hiddenDiv.style.display === 'none'){
hiddenDiv.style.display = 'block'
}else{
hiddenDiv.style.display = 'none';
}
});
</script>
그런데 버튼을 클릭했을 뿐인데 페이지가 이동하려고 하고 다음과 같은 오류가 출력되었다.
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0
콘솔 로그를 확인해보니 같은 페이지에 있는 리뷰 작성 폼이 제출되었고, 필요한 데이터가 모자라서 오류가 발생한 것이었다.
이러한 경우, preventEvent()를 사용해서 기본 동작을 막아야 한다. 스크립트를 다음과 같이 수정해서 해결했다.
<script>
document.getElementById('addScheduleButton').addEventListener('click', function(){
event.preventDefault();
let hiddenDiv = document.getElementById('hiddenDiv');
if(hiddenDiv.style.display === 'none'){
hiddenDiv.style.display = 'block'
}else{
hiddenDiv.style.display = 'none';
}
});
</script>
함수의 첫줄에 코드 한 줄을 추가했다.
event.preventDefault();
'정리노트 > 팀프로젝트' 카테고리의 다른 글
[팀 프로젝트] 24.02.29. 노트 (0) | 2024.02.29 |
---|---|
[팀 프로젝트] 24.02.28. 노트 (0) | 2024.02.28 |
[Spring, JSP]조건에 따라 출력되는 html 다르게 하기(스크립트 태그, c태그) (0) | 2024.02.27 |
[팀 프로젝트] 24.02.27. 노트 (0) | 2024.02.27 |
[팀 프로젝트] 24.02.26. 노트 (0) | 2024.02.26 |