인프런 커뮤니티 질문&답변

developer_account님의 프로필 이미지
developer_account

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

체크 박스 - 멀티

th:field의 id 부여 질문

작성

·

421

0

<!-- multi checkbox -->
<div>
<div>등록 지역</div>
<div th:each="region : ${regions}" class="form-check form-check-inline">
<input type="checkbox" th:field="*{regions}" th:value="${region.key}" class="form-check-input">
<label th:for="${#ids.prev('regions')}" th:text="${region.value}" class="form-check-label">서울</label>
</div>
</div>

우선 위에서 루프안에서 th:field를 사용하면 id뒷부분에 인덱스가 붙어 부여되는 것은 이해했습니다.

<!-- single checkbox -->
<div>판매 여부</div>
<div>
<div class="form-check">
<input type="checkbox" th:field="*{open}" class="form-check-input" />
<label for="open" class="form-check-label">판매 오픈</label>
</div>
</div>
 
<!-- single checkbox -->
  <div>판매 여부</div>
  <div>
  <div class="form-check">
  <input type="checkbox" class="form-check-input" id="open1" name="open" value="true" /><input type="hidden" name="_open" value="on"/>
  <label for="open" class="form-check-label">판매 오픈</label>
  </div>
  </div>
   

그런데 위처럼 판매여부 부분의 input에 id를 따로 지정하지 않고 th:field만 적용하니 id가 open1로 붙어 의문이 생겨 질문드립니다. 

<div>
<label for="itemName">상품명</label>
<input type="text" th:field="*{itemName}" class="form-control" placeholder="이름을 입력하세요">
</div>

위에서도 동일하게 id는 별도로 작성하지 않았지만 itemName1이 아닌 itemName으로 id가 들어옵니다.

판매여부 부분만 open1로 지정이되어 확인해보니 input 타입을 checkbox가 아니라 text로 변경하니 정상적으로 open으로 지정이 되던데.. input 타입에 따라 id가 부여되는 방식이 다른가요 ?

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. developer_account님

checkbox의 경우 여러게 멀티로 만들 수 있습니다. HTML에서 id는 중복되면 안되기 때문에 이렇게 만들어줍니다.

감사합니다.

developer_account님의 프로필 이미지
developer_account

작성한 질문수

질문하기