[html] 동일한 이름을 가진 두 개의 입력 요소를 갖는 것이 유효합니까?

즉 :

<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에서 테스트하십시오.

http://validator.w3.org/


답변

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];


답변