Devre dışı bırakılan öznitelik için doğru değer nedir?


167

disabledBir metin kutusu veya metin alanı özelliği için doğru değer nedir ?

Aşağıdakilerin daha önce kullanıldığını gördüm:

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

5
Öznitelikler, yalnızca varlığı bir şeyin yapılması gerektiğini gösteren öznitelikler için bile bir değere sahip olmalıdır. disabled="false"öğeyi yine de devre dışı bırakacaktı, çünkü bu disabled, özelliğin değerini değil, devre dışı bırakmayı tetikleyen PRESENCE .
Marc B

Js1568'in cevabına yorum olarak gönderdiğim bağlantı @Marc B'nin ne dediğini onaylıyor / açıklıyor: whatwg.org/specs/web-apps/current-work/multipage/…
James Allardice

stackoverflow.com/questions/1033944/… olası kopyası ( her ikisi de boolean öznitelikler olduğu için (işaretlenmemiş)
Ciro Santilli 郝海东 冠状 冠状 六四 事件 法轮功

Yanıtlar:


148
  • XHTML <input type="text" disabled="disabled" />için geçerli bir biçimlendirmedir.
  • HTML5 için, <input type="text" disabled />W3C tarafından örnekleri üzerinde geçerlidir ve kullanılır.
  • Aslında, her iki yol da tüm büyük tarayıcılarda çalışır.

15
Html5'te giriş geçersiz bir öğedir ve kendiliğinden kapanan bir eğik çizgiye ihtiyaç duymaz: w3.org/TR/html5/syntax.html#void-elements ve w3.org/TR/html5/syntax.html#syntax-start- etiketi
Daniel

1
@Daniel K. Çok dilli HTML / XML işaretlemesi yapmadıkça buna gerek yoktur.
Patanjali

108

HTML5 spesifikasyonu :

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

İşaretli içerik özelliği bir boole özelliğidir

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

Bir öğe üzerinde bir boolean özelliğinin varlığı, gerçek değeri, özelliğin olmaması ise yanlış değeri temsil eder.

Özellik mevcutsa, değeri boş dize veya özelliğin kanonik adı için ASCII büyük / küçük harfe duyarlı olmayan bir değer olmalıdır, baştaki veya sondaki boşluk olmadan.

Sonuç :

Aşağıdakiler geçerli, eşdeğer ve doğrudur :

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

Aşağıdakiler geçersiz :

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

Özniteliğin olmaması, false için geçerli tek sözdizimidir :

<input type="text" />

Öneri

Geçerli XHTML, kullanımını yazma önem veriyorsanız disabled="disabled"bu yana, <input disabled>geçersiz ve diğer alternatifler daha az okunabilir. Başka, sadece <input disabled>daha kısa olduğu için kullanın .


3
Not: AngularJS kullanıyorsanız ve devre dışı durumunu bir değişkene bağlamanız gerekiyorsa, ng-disabledbunun yerine kullanabilirsiniz . Bunun gibi diğer özelliklerle benzer şekilde, genellikle akıllı ng-*muadilleri vardır
jakub.g

5
disabled={true}reaktJs JSX kodunda çalışır, ancak yalnızca geçerli / izin verilen HTML5 biçimlerinden birine aktarılacağından eminim.
RBT

1

Tüm bunları denedim ve IE11 için işe yarayan tek şey devre dışı bırakıldı = "true". Devre dışı bırakılan değerler veya verilen değer işe yaramadı. Aslında, jsp tüm alanlar için eşit bir hata var, bu yüzden bunun çalışması için devre dışı = "true" belirtmek zorunda kaldı.


1
OP'nin sorusu HTML ile ilgilidir (yani istemci tarafı kontroller). Sunucu tarafı denetimlerine bakıyorsunuz; farklı sözleşmeleri var. HTML çıkışını JSP'niz tarafından incelerseniz farkı fark edersiniz. Hala şüpheleriniz varsa , IE11'de bu kemanı deneyin .
Ruud Helderman

Aynı şeyi IE 11'de istemci tarafında da gördüm. IE 11 bir şeyi var olmaya zorlar, bu yüzden sadece devre dışı bırakılan sonuçları devre dışı
bırakmak

1

HTML5'te doğru bir değer yoktur, tüm büyük tarayıcılar özelliğin ne olduğunu gerçekten umursamazlar, sadece özelliğin var olup olmadığını kontrol ederler, böylece öğe devre dışı bırakılır.

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.