development

이름 속성은 HTML 문서에서 고유해야합니까?

big-blog 2020. 12. 25. 22:44
반응형

이름 속성은 HTML 문서에서 고유해야합니까?


id특성과 특성 이 모두 name동일한 네임 스페이스를 공유하고 고유해야 한다는 사양을 읽은 것을 기억 합니다. 이제부터 나는 항상 같은 줄도 두려워, 내 응용 프로그램에서 이러한 요구 사항을 충족하기 위해 노력했습니다 idname같은 요소에 있습니다.

하지만 최근에 저는 ASP.NET MVC 3로 작업하기 시작했으며, PHP와 같이 name여러 입력 컨트롤 에서 동일한 속성을 사용하여 서버 측에서 값 모음을 형성 할 수 있습니다. 사양에서 관련 섹션을 찾아 보려고했지만 찾지 못했습니다. 아마도 내가 뭔가를 오해했거나 잘못된 문서를 읽었 을까요?

그럼 어때? 가능한 한 유효한 HTML을 만들고 싶습니다 (다른 앱에서 4.01과 5 모두). 이 트릭을 두려움없이 사용할 수 있습니까? 아니면 내가 무언가를 위반하고 고유 한 가치를 고수해야합니까?


name속성은에서만 유효 <form>과 폼 요소 ( <input>, <textarea><select>). name양식 게시물에 제출 된 이름 / 값 쌍과 연결할를 지정하는 데 사용됩니다 .

예를 들면 :

<input type="checkbox" name="foo" value="1" />

선택하면 제출 foo=1합니다. DOM 에서를 인덱스로 form.elements지정하여 컬렉션의 양식 요소를 참조 할 수 있습니다 name. name이 고유하지 않은 경우 컬렉션은 요소가 아닌 요소의 배열을 반환합니다. Modern DOM의 지원은 다음과 같이 이름으로 양식 요소를 조회합니다.

 document.getElementsByName(nameValue)

참고 : 요소가 하나만 발견 된 경우에도 항상 배열을 반환합니다.

id속성은 XML 세계에서 왔으며 양식 요소뿐만 아니라 모든 노드에 대한 고유 ID입니다. name속성 과 달리 모든 HTML 노드에서 유효합니다. 또한 name속성 과 마찬가지로 유효한 식별자 규칙을 따라야합니다. 식별자는 알파로 시작해야하며 알파 ( [a-zA-Z]), 숫자, 하이픈, 밑줄 및 콜론 만 포함 해야합니다 (ASP.NET은 예약 된 ID를 밑줄로 시작하여이 규칙을 위반하므로 항상 HTML / XML lint가 실패합니다. 일부 프록시는이를 제거합니다). HTML 요소를 찾으려면 id다음을 사용하십시오.

document.getElementById(idvalue)

이것은 하나의 DOM 노드 만 반환합니다.


name속성은 고유하지 않습니다. 예를 들어 라디오 버튼을 그룹화하는 데 사용됩니다. 특정 양식 속성의 값을 나타냅니다. id은 고유해야합니다.


ID는 고유해야하지만 동일한 NAME으로 여러 양식 요소를 사용할 수 있습니다. 이것은 라디오 버튼이 작동하는 방식에 대한 표준이므로 라디오 버튼 그룹 중 하나를 강제로 선택할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/5518458/does-a-name-attribute-have-to-be-unique-in-a-html-document

반응형