최신 웹 개발에서 입력 필드에 "이름" 속성을 사용하는 것이 중복됩니까?

StackOverflow https://stackoverflow.com/questions/1813085

  •  06-07-2019
  •  | 
  •  

문제

스타일링이나 스크립팅 목적으로 사용되지 않더라도 "이름" 속성이 지정된 입력 필드가 포함된 양식이 있는 웹사이트를 많이 보았습니다!

게다가에 따르면 공식 문서 HTML 문서의 양식에 대해 ...

이름 = cdata [CI] 이 속성은 요소를 스타일 시트 나 스크립트에서 참조 할 수 있도록 요소의 이름을 지정합니다.메모.이 속성은 거꾸로 호환성을 위해 포함되었습니다.응용 프로그램은 ID 속성을 사용하여 요소를 식별해야합니다.

그래서 내 질문은 다음과 같습니다.이 속성은 스타일 지정 및 스크립팅 목적으로만 사용해야 합니까?

미리 감사드립니다!


편집하다: 특히, "텍스트" 유형의 입력 필드에서 이 속성을 사용하지 않을 수 있습니까(스타일링이나 스크립팅 목적이 없는 경우)?


편집 2: 그래서 제가 생각했던 것을 거의 확인하셨습니다."이름" 속성은 향후 HTML 사양/표준에서 더 이상 사용되지 않습니다!!!???아직은 "살아있다"는 것 뿐이다 for backwards compatibility ...어떤 경우에는 피할 수 있지만 여전히 필요한 경우(예: 라디오 버튼)가 있습니다!

도움이 되었습니까?

해결책

그만큼 name 속성은 비 Dom JavaScript를 통해 웹 페이지 범위 내에서 특정 요소를 참조하는 표기법입니다.

document.forms['your_form'].elements['aa']

그만큼 id 요소의 속성은 다음과 같은 작업에 대해 동일한 값으로 설정해야합니다.

document.getElementById('aa')

내 이해는 Netscape가 JavaScript를 만들었을 때 name 기인하다. 그러나 HTML 사양은 함께 가기로 결정했습니다 id, 그러나 유지 name 거꾸로 호환성. Ime, 사용 name IE의 JavaScript 엔진은 id 속성 - 만 name 둘 다 정의되었지만.

... "텍스트"유형의 입력 필드 (스타일 또는 스크립팅 목적이없는 경우) 로이 속성을 사용하는 것을 피할 수 있습니까?

텍스트 필드에 JavaScript가 첨부되지 않은 경우 예 - 불필요합니다.

다른 팁

거의 모든 사이트에 이름 속성이있는 입력이 있다고 생각합니다. 나는 그것이 곧 사라지는 것을 보지 못한다.

이름 속성은 입력 요소의 이름을 지정합니다.

이름 속성은 서버에 제출 된 후 양식 데이터를 식별하거나 클라이언트 측에서 JavaScript를 사용하여 양식 데이터를 참조하는 데 사용됩니다.

참고 : 이름 속성을 가진 양식 요소 만 양식을 제출할 때 값이 전달됩니다.

원천

id와 name 속성에는 차이가 있습니다.ID는 HTML 문서의 모든 요소에 적용할 수 있지만 이름은 입력 필드에만 관련됩니다.ID는 표준에 따라 페이지에서 고유해야 합니다(단, 모든 웹페이지에서 반드시 따라야 하는 것은 아닙니다).그러나 다른 요소는 동일한 이름을 가질 수 있습니다.마음속에 떠오르는 특별한 경우 중 하나는 라디오 버튼입니다.모든 라디오 버튼은 동일한 이름을 가져야 하며 선택한 버튼의 값이 양식에 다시 제공됩니다.따라서 해당 이름이 HTML 양식 처리에서 여전히 중요한 의미를 갖고 있음을 알 수 있습니다.

나는 자동 HTML 양식 생성 시스템(예: zope.formlib), id 및 name 속성은 모두 다양한 유형의 입력 위젯에 대해 자동으로 생성됩니다.이러한 자동 양식 생성 시스템은 ID 및 이름 속성의 차이와 관련된 모든 미묘한 차이를 적절하게 처리합니다.또한 각 체크박스 요소에 대해 숨겨진 입력 요소를 생성하는 등의 작업도 수행합니다.그래서 가능한 한 일종의 자동 HTML 양식 생성 메커니즘을 사용하여 관련된 문제를 처리하도록 하려고 합니다.

이것은 오래된 질문이지만 많은 현대식 JS 프레임 워크가 name 기인하다. 특히 jQuery 's serialize 기능:

직렬화 된 문자열에 포함 되려면 양식 요소의 값이 포함 되려면 요소에 이름 속성이 있어야합니다.

무엇인가, name 복귀를하고있는 것 같습니다.

또한 주목할 가치가 있습니다 name 속성은 id. id 페이지 내에서 독특해야하지만 동일합니다. name 여러 번 사용할 수 있습니다. 이렇게하면 같은 페이지에 여러 양의 양식이 있거나 체크 박스 그룹 등을 참조하려는 경우 유용합니다.

IIRC 이전 브라우저는 ID 대신 이름을 사용하므로 일반적으로 포함됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top