답변:
readonly
요소는 편집 할 수 없습니다,하지만 따라 할 때 보내지 form
을 제출합니다. disabled
요소는 편집 할 수 없습니다 제출에 전송되지 않습니다. 또 다른 차이점은 readonly
요소는 초점을 맞출 수없고 (양식을 통해 "탭"할 때 초점을 맞출 수 있음) disabled
요소는 할 수 없다는 것입니다.
이 위대한 기사 또는 w3c에 의한 정의 에서 이것 에 대해 더 읽으십시오 . 중요한 부분을 인용하려면 :
주요 차이점
Disabled 속성
- 비활성화 된 양식 요소의 값은 프로세서 메소드로 전달되지 않습니다. W3C는 이것을 성공적인 요소라고 부릅니다 (이것은 선택되지 않은 양식 확인란과 유사하게 작동합니다).
- 일부 브라우저는 비활성화 된 양식 요소에 대한 기본 스타일을 대체하거나 제공 할 수 있습니다. (Gray out 또는 emboss text) Internet Explorer 5.5는 특히 이것에 대해 불쾌합니다.
- 비활성화 된 양식 요소에는 포커스가 없습니다.
- 탭 탐색에서 비활성화 된 양식 요소를 건너 뜁니다.
읽기 전용 속성
- 모든 양식 요소에 읽기 전용 속성이있는 것은 아닙니다. 가장 주목할만한의
<SELECT>
,<OPTION>
및<BUTTON>
요소는 읽기 전용 속성이없는 (둘 다 사용할 속성이 있지만)- 브라우저는 양식 요소가 읽기 전용이라는 기본 재정의 시각적 피드백을 제공하지 않습니다. (이것은 문제가 될 수 있습니다… 아래를 참조하십시오.)
- 읽기 전용 속성이 설정된 양식 요소는 양식 프로세서로 전달됩니다.
- 읽기 전용 양식 요소는 포커스를받을 수 있습니다
- 읽기 전용 양식 요소는 탭 탐색에 포함됩니다.
disabled
암시 는 암시readonly
하지만 readonly
암시하지는 않습니다 disabled
. 즉, 요소에 disabled
속성 이있는 경우 속성도 포함 할 필요가 없습니다 readonly
. 옳은?
요소가 속성을 비활성화 한 경우 이벤트가 트리거되지 않습니다.
아래 중 어느 것도 트리거되지 않습니다.
$("[disabled]").click( function(){ console.log("clicked") });//No Impact
$("[disabled]").hover( function(){ console.log("hovered") });//No Impact
$("[disabled]").dblclick( function(){ console.log("double clicked") });//No Impact
읽기 전용이 트리거되는 동안
$("[readonly]").click( function(){ console.log("clicked") });//log - clicked
$("[readonly]").hover( function(){ console.log("hovered") });//log - hovered
$("[readonly]").dblclick( function(){ console.log("double clicked") });//log - double clicked
Disabled는 양식을 제출할 때 해당 양식 요소의 데이터가 제출되지 않음을 의미합니다. 읽기 전용은 요소 내의 모든 데이터가 제출되지만 사용자가 변경할 수 없음을 의미합니다.
예를 들면 다음과 같습니다.
<input type="text" name="yourname" value="Bob" readonly="readonly" />
"yourname"요소에 "Bob"값을 제출합니다.
<input type="text" name="yourname" value="Bob" disabled="disabled" />
"yourname"요소에 대해서는 아무것도 제출하지 않습니다.
readonly
와 disabled
부울 값입니다. disabled
대신 사용 disabled="disabled"
(읽기 전용과 동일)
attrname="attrname"
. 어느 쪽이든, 적어도 내가 찾을 수없는 것은 문서화가 잘되어 있지 않은 것 같습니다. w3.org/TR/html4/intro/sgmltut.html#h-3.3.4.2-XHTML 이 아닌 SGML 및 HTML 만 언급합니다. 너무 많은 약어 : S
Boolean attributes may legally take a single value: the name of the attribute itself (e.g., selected="selected").
따라서 빈 문자열은 유효하지 않은 것 같습니다.
다른 답변과 동일하지만 (사용 안 함은 서버로 전송되지 않고 읽기 전용입니다) 일부 브라우저는 비활성화 된 양식을 강조 표시하지 못하게하지만 읽기 전용은 여전히 강조 표시 및 복사 할 수 있습니다.
http://www.w3schools.com/tags/att_input_disabled.asp
http://www.w3schools.com/tags/att_input_readonly.asp
읽기 전용 필드는 수정할 수 없습니다. 그러나 사용자는 탭하여 강조 표시 한 다음 텍스트를 복사 할 수 있습니다.
disabled = "disabled"
읽기 전용 텍스트 상자는 값을 유지하지 않으므로 양식을 지울 때 (재설정) 비활성화 된 텍스트 상자의 값을 유지해야하는 경우 사용해야합니다.
예를 들어 :
HTML
텍스트 박스
<input type="text" id="disabledText" name="randombox" value="demo" disabled="disabled" />
리셋 버튼
<button type="reset" id="clearButton">Clear</button>
위의 예에서 지우기 버튼을 누르면 비활성화 된 텍스트 값이 양식에 유지됩니다. 다음의 경우 가치가 유지되지 않습니다input type = "text" readonly="readonly"