즉 :
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
과
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
이것이 허용되고 유효합니까?
답변:
예, 유효합니다
이것은 좋다
<form name="form1">
<input type="hidden" name="url" value="1">
</form>
<form name="form2">
<input type="hidden" name="url" value="2">
</form>
이것도 괜찮 으며 일반적으로 {url: [1, 2]}
서버가 수행하는 작업에 따라 값의 배열로 해석됩니다 . URL 인코딩에서는 url=1&url=2
.
<form name="form1">
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
예.
또한 라디오 버튼 그룹을 다루는 경우 필수적입니다.
"이것은 좋지 않습니다"는 내가 아는 모든 브라우저에서 올바르게 구문 분석됩니다. URL 인코딩 문자열에 두 개의 URL이 표시되면 배열로 처리됩니다. JQuery에서 이것을 시도하십시오.
$('<form name="form1">\
<input type="hidden" name="url" value="1">\
<input type="hidden" name="url" value="2">\
</form>').serialize()
그리고 당신은 얻을 것이다 : "url=1&url=2"
잘 작성된 쿼리 문자열 파서는 다음과 같은 json 구조를 반환합니다.
{"url":["1", "2"]}
엄격하게 사양입니까? 아니요,하지만 위에서 한 것처럼 백 슬래시로 EOL을 이스케이프하여 여러 줄 문자열을 만드는 것도 아닙니다.
예-각각은 각각의 양식 만 제출합니다.
동일한 양식에있는 경우 하나가 다른 하나를 무시하고 유효하지 않습니다.
편집 : Mahmoodvcs가 지적한대로 재정의는 HTML 자체에 내재되어 있지 않은 일부 언어 (예 : PHP)에서만 발생합니다.
유효한지 여부를 테스트하려면 여기에서 페이지를 만들고 W3C에서 테스트하십시오.
A) 제출 양식 시간이 다르기 때문에 첫 번째 예는 괜찮습니다.
<form id="1">
<input type="hidden" name="url" value="1">
</form>
<form id="2">
<input type="hidden" name="url" value="2">
</form>
B) 두 번째 예도 괜찮지 만 표준 코딩 방법은 아닙니다.
<form>
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
Java 코드 2는 두 값을 모두 추출합니다.
Map<String,String[]> parmMap = requestObj.getParameterMap();
String input1 = parmMap.get("url")[0];
String input2 = parmMap.get("url")[1];