input 외에 select, textarea, button, fieldset 같은 폼 요소를 사용합니다.
select는 정해진 선택지, textarea는 여러 줄 입력, button은 명령에 사용합니다. fieldset과 legend는 관련 입력을 하나의 질문 그룹으로 묶고 datalist는 input에 추천값을 제공합니다.
결과 문단은 FormData에서 topic, level, message를 차례로 꺼내 가운데 점으로 잇습니다. 라디오 두 개는 같은 name=topic을 써서 하나만 고를 수 있고 처음에는 checked가 붙은 HTML이 선택돼 있습니다. option에 value가 없으므로 고른 option의 글자인 입문이나 중급이 그대로 level 값이 되고, 하고 싶은 말을 비워 두면 message는 빈 문자열입니다.
fieldset에 disabled를 붙이면 안에 든 모든 컨트롤이 한꺼번에 비활성화되고, 비활성 컨트롤의 값은 제출 데이터에서 빠집니다. select에 multiple을 주면 여러 option을 고를 수 있는데, 이때는 같은 이름으로 값이 여러 개 들어가므로 FormData의 get 대신 getAll로 꺼내야 합니다.
선택지가 고정돼 있는데 자유 텍스트 input만 제공하면 오타와 데이터 불일치가 늘어납니다.
직접 바꿔보세요select에 '고급' option을 추가하고 textarea의 rows를 바꿔보세요.