[HTML] radio/checkbox 클릭 안 되는 오류가 label for 때문이라고?
radio와 checkbox가 클릭이 안되는 오류가 발생했다.
css문제인 줄 알고 디자인팀에 문의했는데 css문제가 전혀 없었고 id를 추가하면 됩니다~하는 답변을 받았다.
문제코드
FORM으로 데이터를 넘길거니까 name과 value만 신경써서 작업했다.
1 | <input type="radio" name="reply_type" value="email" checked><label for="email">E-mail</label> |
그런데 라디오버튼이 클릭도 안되고 post로 보내도 값이 넘어오지않았다!
어디가 문제일까?
해결코드
원인은 label for이었다.
웹접근성을 위해 디자인팀에서 추가했는데 내가 미처 확인하지 못했다.label for를 쓴다면 input 속성에 id값과 일치 시켜줘야한다!
1 | <input type="radio" name="reply_type" value="email" id="email" checked><label for="email">E-mail</label> |
해결!
그럼 checkbox의 경우는?
checkbox도 이와 동일하다.
name과 value를 잘 넣었는데도 눌러지지않는다면 lable for값과 id값이 일치하는지 의심해보자
그리고 사소한 실수 하지말자!
근데 label은 왜 쓸까?
- input 태그 타입 중 month, number, password, radio, range같은 경우 placeholder속성이 없기에 어떤 input인지 설명해줄수가 없다. 따라서 label을 사용해서 명시적으로 용도를 나타내줄수있다.
- 웹접근성을 위해 필요하다.
![[OS/WINDOW]배포후 서버재시작에 batch와 윈도우 스케줄러 활용하기](https://cdn.pixabay.com/photo/2012/03/04/00/50/board-22098_960_720.jpg)
![[블로그]헥소테마에서 댓글기능 facebook에서 utterances로 변경하기](https://miro.medium.com/max/1600/1*aOv6h3h_v9PQWa03zGACnw.png)