6 단계로 나눈 긴 형태가 있습니다. 양식이로드되면 모든 단계가로드되지만 첫 번째 단계 만 표시됩니다. 나머지는 CSS가 display:none
있으므로 숨겨져 있습니다. 단계가 완료되고 Javascript로 유효성이 검증되면 현재 단계가로 설정되고 display:none
새 단계가로 설정됩니다 display:block
. 마지막 단계에서 사용자는 양식을 제출합니다. 그러나 예상대로 display:block
페이지 요소 의 필드 만 제출됩니다. 요소에서 완료된 모든 필드 display:none
는 무시됩니다.
display:none
요소 내부에 필드를 제출하는 방법이 있습니까?
그렇지 않은 경우 동일한 효과를 얻을 수있는 다른 방법이 있습니까?
답변
로 설정 visibility:hidden
하고 position:absolute
대신. 필드는과 함께 서버로 전송되지 display:none
않지만 과 함께 전송됩니다 visibility:hidden
. 또한 “위치”를 “절대”로 전환하면 동일한 시각적 효과를 얻을 수 있습니다.
업데이트이 문제는 현재 브라우저에서 더 이상 문제가되지 않는 것 같습니다 (2015 년 11 월 기준). 디스플레이가 ‘없음’으로 설정된 경우에도 필드가 제출됩니다. 그러나 ‘비활성화’된 필드는 계속 제출되지 않습니다.
답변
HTML4, 섹션 17.13.2는 display : none을 사용하는 숨겨진 컨트롤도 제출에 유효 할 수 있다고 명시합니다.
https://www.w3.org/TR/html401/interact/forms.html
따라서 브라우저가 display : none을 무시하면 완전히 HTML을 지원하지 않습니다. 실제 브라우저로 전환하는 것이 좋습니다.