[javascript] display : none 요소 내 양식 필드 제출

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을 지원하지 않습니다. 실제 브라우저로 전환하는 것이 좋습니다.


답변