공부/SpringBoot
SpringBoot 우편번호 검색/주소 찾기
JChBeen
2022. 11. 1. 14:33
html에 자신의 Scripts보다 위쪽에
<script src="https://t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script>
추가해줍니다.
<label class="label address">
<span hidden>우편번호</span>
<input class="--object-input input" maxlength="6" name="addressPostal"
placeholder="우편번호" type="text" readonly>
<input class="--object-button" name="addressFined" value="주소찾기" type="button">
</label>
<label class="label address">
<span hidden>기본 주소</span>
<input class="--object-input input" maxlength="100" name="addressPrimary" type="text"
readonly placeholder="주소찾기를 통해 주소를 입력해 주세요.">
</label>
<label class="label address">
<span hidden>상세 주소</span>
<input class="--object-input input" maxlength="100" name="addressSecondary" type="text" placeholder="상세 주소를 입력해주세요.">
</label>
<div class="panel address" rel="addressFindPanel">
<div class="dialog" rel="addressFindPanelDialog"></div>
</div>
.panel.address {
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 70%);
position: fixed;
display: none;
}
.panel.address.visible{
display: block;
}
visible클래스를 이용해서 CSS에서 만들어둔 주소 선택창을 활성화와 비 활성활 진행합니다.
CSS에서 기본적으로 display: none을 통해 보이지 않는 상태이고 주소 찾기 버튼을 클릭할 경우 display : block를 이용해서 화면에 배치합니다.
form['addressFined'].addEventListener('click', () => {
//daum.Postcode는 주소를 선택할 경우에 작동하는 함수.
new daum.Postcode({
oncomplete: e => {
form.querySelector('[rel="addressFindPanel"]').classList.remove('visible');
form['addressPostal'].value = e['zonecode'];
form['addressPrimary'].value = e['address'];
form['addressSecondary'].value = '';
form['addressSecondary'].focus();
}
}).embed(form.querySelector('[rel="addressFindPanelDialog"]'));
form.querySelector('[rel="addressFindPanel"]').classList.add('visible');
});
주소 찾기 버튼을 클릭할 경우
form.querySelector('[rel="addressFindPanel"]').classList.add('visible');
이 구문을 통해서 visible class가 추가되어서 주소 검색창이 활성화되고
주소를 선택할 경우
form['addressPostal'].value = e['zonecode'];
form['addressPrimary'].value = e['address'];
주소 입력창에 각각 주소와 우편번호가 입력됩니다.