disabled 속성의 올바른 값은 무엇입니까?


167

disabled텍스트 상자 또는 텍스트 영역 의 속성에 대한 올바른 값은 무엇입니까 ?

전에 사용 된 다음을 보았습니다.

<input type="text" disabled />
<input type="text" disabled="disabled" />
<input type="text" disabled="true" />

5
존재가 단순한 신호를 보내는 속성에 대해서도 속성에는 값이 있어야합니다. 속성 값이 아닌 비활성화를 트리거하는 disabled="false"PRESENCE이기 때문에 여전히 요소를 비활성화 disabled합니다.
Marc B

js1568의 답변에 대한 의견으로 게시 한 링크는 @Marc B의 말을 확인 / 명명합니다
James Allardice

둘 다 부울 속성 (플래그되지 않음)이므로 stackoverflow.com/questions/1033944/…의 복제 가능
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

답변:


148
  • XHTML의 <input type="text" disabled="disabled" />경우 유효한 마크 업입니다.
  • HTML5의 경우 <input type="text" disabled />샘플에서 W3C가 유효하고 사용합니다.
  • 실제로 두 가지 방법 모두 모든 주요 브라우저에서 작동합니다.

15
html5에서 입력은 void 요소이며 자체 닫는 슬래시가 필요 없습니다 : w3.org/TR/html5/syntax.html#void-elementsw3.org/TR/html5/syntax.html#syntax-start- 태그
다니엘

1
@Daniel K. 폴리 글 로트 HTML / XML 마크 업을하지 않는 한 필요하지 않습니다.
Patanjali

108

HTML5 사양 :

http://www.w3.org/TR/html5/forms.html#enabling-and-disabling-form-controls:-the-disabled-attribute :

확인 된 컨텐츠 속성은 부울 속성입니다.

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :

요소에 부울 속성이 있으면 true 값을 나타내고 속성이 없으면 false 값을 나타냅니다.

속성이 존재하는 경우, 값은 빈 문자열이거나 속성의 정식 이름에 대해 ASCII에서 대소 문자를 구분하지 않는 값이어야하며 선행 또는 후행 공백이 없어야합니다.

결론 :

다음은 유효하고 동일하며 사실입니다 .

<input type="text" disabled />
<input type="text" disabled="" />
<input type="text" disabled="disabled" />
<input type="text" disabled="DiSaBlEd" />

다음은 유효하지 않습니다 :

<input type="text" disabled="0" />
<input type="text" disabled="1" />
<input type="text" disabled="false" />
<input type="text" disabled="true" />

이 속성이 없으면 false 의 유일한 올바른 구문입니다 .

<input type="text" />

추천

유효한 XHTML 작성에 관심이있는 경우을 사용하십시오 disabled="disabled". <input disabled>유효하지 않으며 다른 대안은 읽기 어렵 기 때문입니다. 그렇지 않으면 <input disabled>짧게 사용하십시오.


3
참고 : AngularJS를 사용하고 비활성화 된 상태를 변수에 바인딩해야하는 경우 ng-disabled대신 사용할 수 있습니다 . 이와 같은 다른 속성과 마찬가지로, 일반적으로 지능적인 ng-*대응
jakub.g

5
disabled={true}reactJs JSX 코드에서 작동하지만 유효하거나 허용되는 HTML5 형식 중 하나로 만 변환됩니다.
RBT

1

방금 이것들을 모두 시도했지만 IE11의 경우 작동하는 유일한 것은 disabled = "true"입니다. 비활성화 된 값 또는 제공된 값이 작동하지 않았습니다. 사실, jsp는 모든 필드에 대해 동등한 오류가 필요하므로 작동하도록 disabled = "true"를 지정해야했습니다.


1
OP의 질문은 HTML (클라이언트 측 컨트롤)에 관한 것이었다. 서버 측 컨트롤을보고 있습니다. 그것들은 다른 규칙을 가지고 있습니다. JSP에서 HTML 출력을 검사하면 차이를 알 수 있습니다. 여전히 의심 스러우면 IE11 에서이 바이올린 을 사용해보십시오 .
Ruud Helderman 12

IE 11의 클라이언트 측에서도 같은 것을 보았습니다. IE 11은 무언가를 강요하므로 disabled로 설정하면 disabled = ""
Robert Achmann

1

HTML5에는 올바른 값이 없으며 모든 주요 브라우저는 실제로 속성이 무엇인지 신경 쓰지 않고 속성이 존재하는지 확인하여 요소가 비활성화됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.