2010-09-09 17 views
273

Więc mam wprowadzania tekstuJak uniemożliwić edycję wpisu tekstowego?

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

Oto mój CSS bo

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; 

Czy jest ustawienie lub podstęp do tego, myślałem zrobić etykietę zamiast ale jak o stylizacja. Jak mogę je przekonwertować i czy istnieje lepszy sposób, czy jest to jedyny sposób?

Odpowiedz

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

Nie wymaga stylizacji.

Zobacz <input> na MDN https://developer.mozilla.org/en/docs/Web/HTML/Element/input#Attributes

+3

lub readonly = „readonly” jeśli chcesz to wszystko jest XML-y, patrz przykład Stephana Mullera poniżej :) –

+1

@Algy Taylor: Tak, to było w pierwotnej odpowiedzi, gdy oryginalny pytanie miał nieobliczalny [ xhtml], który zawiódł wszystkich, co było ważne, dla którego standardu:/ – BoltClock

+0

jest jakiś sposób usunięcia tego czerwonego kółka, które pojawia się po najechaniu na 'textarea' za pomocą atrybutu' readonly'? –

37

Można użyć atrybutu readonly, jeśli chcesz, aby Twój wkład tylko do odczytu. Możesz użyć atrybutu disabled, jeśli chcesz, aby dane wejściowe były pokazywane, ale całkowicie wyłączone (nawet języki przetwarzania takie jak PHP nie będą w stanie ich odczytać).

+0

php działa po stronie serwera, miałeś na myśli javascript? –

+2

Po wysłaniu formularza do pliku php nie będzie czytał zablokowanych danych wejściowych. Być może to właśnie miał na myśli. – Carlos2W

+3

co akurat dzieje się to, że wyłączone dane wejściowe NIE są NAWET WYSŁANE po przesłaniu formularza, nie ma nic wspólnego z php, js lub cokolwiek. – vasilevich

4

dodać atrybut tylko do odczytu

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

lub -

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

No CSS potrzebne!

+19

Co to może dodać do pytania, na które moja odpowiedź i odpowiedź Stephana z więcej niż 3 lat wcześniej nie istniały? Nawet nie wspominałeś, że moje oświadczenie o CSS nie jest potrzebne. – BoltClock

19

Wystarczy wypełnić odpowiedź dostępny:

Element wejściowy może być tylko do odczytu lub wyłączone (żadna z nich nie jest edytowalny, ale istnieje kilka różnic: focus, ...)

Dobry wyjaśnienie można znaleźć tutaj:
What's the difference between disabled=“disabled” and readonly=“readonly” for HTML form input fields?

Jak używać:

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

Istnieje również kilka rozwiązań umożliwiających przejście przez CSS lub JavaScript zgodnie z wyjaśnieniami here.

+4

Jeśli zamierzasz używać '/>' do zamykania tagów, możesz również rozszerzyć swoje atrybuty na 'disabled =" wyłączone "' i 'readonly =" readonly "' too. – BoltClock

3

wystarczy dodać wyłączoną pod koniec

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

Wartość nie zostanie przesłana, jeśli zostanie wyłączona. Może to być coś, czego * ty * potrzebujesz, ale nie o to pytano. * Na marginesie, przyjechałem tutaj właśnie dlatego, że moje "wyłączone" dane wejściowe nie zachowywały się tak, jak oczekiwałem * – Balmipour

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

Widać w https://www.w3schools.com/tags/att_input_readonly.asp

Sposób ustawienie "tylko do odczytu":

$("input").attr("readonly", true) 

do anuluj "tylko do odczytu" (praca w jQuery):

$("input").attr("readonly", false) 
+0

element.setAttribute ("readonly", false) nie działają –

Powiązane problemy