Bir metin girişini düzenlenebilir hale nasıl getirebilirim?


344

Metin girişi var

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

İşte bunun için CSS'im

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; 

Bir ayar ya da hile var mı, onun yerine bir etiket yapmayı düşünüyordum ama stil hakkında nasıl. Onları nasıl dönüştürebilirim ve daha iyi bir yol var mı yoksa tek yol mu bu?

Yanıtlar:


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

Stil gerektirmez.

<input>MDN'ye bakın https://developer.mozilla.org/en/docs/Web/HTML/Element/input#Attributes


4
veya readonly = "salt okunur" XML-y olmasını isterseniz, aşağıdaki Stephan Muller örneğine bakın :)
Algy Taylor

1
@Algy Taylor: Evet, orijinal soru, herkesin fındıklarını hangi standart için geçerli olan yönlü bir [xhtml] etiketine sahip olduğunda orijinal
yanıttaydı

ne zaman vurgulu üzerinde çıkageldi o kırmızı bir daire kaldırmak için herhangi bir yol yoktur textareaile readonlyöznitelik?
Chaudhry Waqas

1
@Shafizadeh - Hayır, bu iyi bir şey. Tarayıcıların doğru bir şekilde uygulanması ve insanların anlaması kafa karıştırıcı olacaktır. karmaşık bir görev yapmak için basit bir kontrol yapmaya çalışmayın. Her parça basit (bir düzenlenebilir kontrol, daha sonra düzenlenebilir olmayan bir HTML öğesi, sonra başka bir düzenlenebilir kontrol) ile girdinizi parçalara ayırın.
ToolmakerSteve

1
Ayrıca değerin kalıcı olmasını istemiyorsanız bu sunucu tarafını da kontrol ettiğinizden emin olun. Tarayıcının geliştirici aracında, sırayla giriş alanını tekrar düzenlenebilir hale getiren özelliği kaldırmak kolaydır.
Kurt Van den Branden


41

readonlyGirişinizin yalnızca okunmasını istiyorsanız, niteliği kullanabilirsiniz . Girdinin disabledgösterilmesini, ancak tamamen devre dışı bırakılmasını istiyorsanız özniteliği kullanabilirsiniz (PHP gibi dilleri işlemek bile bunları okuyamaz).


2
Bir php dosyasına form gönderdiğinizde, devre dışı bırakılan girdileri okumaz. Demek istediği bu olabilir.
Carlos2W

3
ne olursa olsun bir formu gönderdiğinizde, devre dışı girişler BİLE GİRİLMEDİ, php, js ya da bir şey ile ilgisi yoktur.
vasilevich

28

Mevcut cevapları tamamlamak için:

Bir giriş öğesi salt okunur veya devre dışı bırakılabilir (hiçbiri düzenlenebilir değildir, ancak birkaç fark vardır: odak, ...)

İyi bir açıklama burada bulunabilir:
HTML form giriş alanları için devre dışı = “devre dışı” ve readonly = “salt okunur” arasındaki fark nedir?

Nasıl kullanılır:

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

Ayrıca burada açıklandığı gibi CSS veya JavaScript ile bunu yapmak için bazı çözümler vardır .


5
/>Etiketlerinizi kapatmak için kullanacaksanız , özelliklerinizi disabled="disabled"ve readonly="readonly"öğelerini de genişletebilirsiniz .
BoltClock


3

salt okunur özelliğini ekle

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

veya -

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

css gerekmez!


22
Bu, cevabımın ve Stephan'ın 3 yıldan daha uzun bir süre önce verdiği cevabın henüz yapmadığı sorusuna ne katıyor? CSS'ye ihtiyaç duyulmadığı konusundaki ifademi bile yansıttınız.
BoltClock

2

sonunda sadece engelli eklemeniz gerekiyor

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

1
Devre dışı olarak ayarladıysanız değer gönderilmez. İhtiyacınız olan şey bu olabilir , ancak sorulan şey bu değil. Bir yan not olarak, buraya tam olarak geldim çünkü "engelli" girdim beklediğim gibi
davranmıyordu

2

Ekle readonly:

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

Değerin bir formda gönderilmesini istemiyorsanız, disabledözniteliği ekleyin .

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

Bunu yapmak için her zaman çalışan CSS kullanmanın bir yolu yoktur.

Neden? CSS hiçbir şeyi "devre dışı bırakamaz". Yine de ekranı veya görünürlüğü kapatabilir ve kullanabilirsiniz, pointer-events: noneancak pointer-eventsIE 11'den önceki IE sürümlerinde çalışmaz.


0

gerçekten CSS kullanmak istiyorsanız , alanı düzenlenemez hale getirecek aşağıdaki özelliği kullanın.

pointer-events: none;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.