텍스트 입력을 편집 할 수 없도록하려면 어떻게합니까?


344

텍스트 입력이 있습니다

<input type="text" value="3" class="field left">

여기 내 CSS가 있습니다.

background:url("images/number-bg.png") no-repeat scroll 0 0 transparent;
border:0 none;
color:#FFFFFF;
height:17px;
margin:0 13px 0 0;
text-align:center;
width:17px; 

이것에 대한 설정이나 트릭이 있습니까? 라벨 대신 스타일을 사용하는 방법을 생각하고있었습니다. 어떻게 변환하고 더 좋은 방법이 있습니까 아니면 유일한 방법입니까?

답변:


707
<input type="text" value="3" class="field left" readonly>

스타일링이 필요하지 않습니다.

참조 <input>MDN에 https://developer.mozilla.org/en/docs/Web/HTML/Element/input#Attributes


4
또는 readonly = "readonly"XML을 모두 좋아한다면 아래 Stephan Muller의 예를 참조하십시오 :)
Algy Taylor

1
@Algy 테일러 : 네, 원래의 질문이있는 표준 유효 대한 모든 너트 운전 [XHTML] 태그 제멋대로을했을 때 원래의 대답했다 : /
BoltClock

때 가져가 이상까지 오는 빨간색 원이 제거 할 수있는 방법이 textareareadonly속성은?
Chaudhry Waqas

1
@Shafizadeh-아뇨, 그건 좋은 일입니다. 브라우저가 올바르게 구현하기 어렵고 사람들이 이해하기 어려울 수 있습니다. 간단한 제어로 복잡한 작업을 수행하지 마십시오. 각 조각을 간단하게 입력 할 수 있도록 입력을 조각으로 나눕니다 (편집 가능한 컨트롤, 편집 할 수없는 HTML 요소, 편집 가능한 다른 컨트롤).
ToolmakerSteve

1
또한 값을 유지하지 않으려면이 서버 측을 확인하십시오. 브라우저의 개발자 도구에서 속성을 쉽게 제거 할 수 있으며, 이로 인해 입력 필드를 다시 편집 할 수 있습니다.
Kurt Van den Branden


41

readonly입력 만 읽으려면 속성 을 사용할 수 있습니다 . disabled입력을 표시하고 싶지만 완전히 비활성화 하려면 속성 을 사용할 수 있습니다 (PHP와 같은 처리 언어조차도 읽을 수 없습니다).


2
PHP 파일로 양식을 보내면 비활성화 된 입력을 읽지 않습니다. 그가 의미 한 것일 수도 있습니다.
Carlos2W

3
정확하게 발생하는 것은 양식을 제출 할 때 비활성화 된 입력이 보내지지 않고 PHP, js 또는 아무것도 관련이 없다는 것입니다.
vasilevich

28

사용 가능한 답변을 완료하려면 다음을 수행하십시오.

입력 요소는 읽기 전용이거나 비활성화 될 수 있습니다 (아무 것도 편집 할 수 없지만 몇 가지 차이점이 있습니다 : 포커스, ...).

좋은 설명은 여기에서 찾을 수 있습니다 :
비활성화 =의 차이는 HTML 폼 입력 필드에 대한 "읽기 전용"= 읽기 전용 "장애인"과 무엇입니까?

사용하는 방법:

<input type="text" value="Example" disabled /> 
<input type="text" value="Example" readonly />

여기에 설명 된대로 CSS 또는 JavaScript를 통해 만들 수있는 솔루션도 있습니다 .


5
당신이 사용하려는 경우 />태그를 닫으려면, 당신은뿐만 아니라 당신의 특성을 확장 할 수 disabled="disabled"readonly="readonly"도.
BoltClock


3

읽기 전용 속성을 추가하십시오

<input type="text" value="3" class="field left" readonly="readonly" >

또는-

<input type="text" value="3" class="field left" readonly>

CSS가 필요 없습니다!


22
3 년 전의 답변과 Stephan의 답변이 아직 없었던 질문에이 점이 무엇입니까? CSS가 필요하지 않다는 진술을 반영했습니다.
BoltClock

2

마지막 에 비활성화 를 추가해야합니다.

<input type="text" value="3" class="field left" disabled>

1
사용 안함으로 설정하면 값이 제출되지 않습니다. 무슨 수 있습니다 당신이 필요하지만, 질문을 받았다없는거야. 참고로, "비활성화 된"입력이 예상
한대로

2

추가 readonly:

<input type="text" value="3" class="field left" readonly>

값을 양식으로 제출하지 않으려면 대신 disabled속성을 추가하십시오 .

<input type="text" value="3" class="field left" disabled>

항상 이렇게하는 CSS를 사용하는 방법은 없습니다.

왜? CSS는 아무것도 "비활성화"할 수 없습니다. 여전히 표시 또는 가시성 및 사용을 끌 수 pointer-events: none있지만 pointer-eventsIE 11 이전에 나온 IE 버전에서는 작동하지 않습니다.


0

CSS 를 정말로 사용하려면 다음 속성을 사용하여 필드를 편집 할 수 없게하십시오.

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