it-swarm.dev

ما هو بناء جملة السمة readonly الصحيح لعناصر نص الإدخال؟

أعلم عن السمة readonly لـ text input ، لكن أثناء قراءة الكود من مواقع أخرى (عادة سيئة لي) رأيت أكثر من تطبيق واحد لها:

<input type="text" value="myvalue" class="class anotherclass" readonly >

و

<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" >

ولقد رأيت حتى

<input type="text" value="myvalue" class="class anotherclass" readonly="true" >

.. وأعتقد أنني رأيت أكثر من ذلك ، لكن لا يمكنني تذكر بناء الجملة الدقيق الآن ..

لذلك ، أي واحد هو الصحيح الذي يجب أن استخدمه؟

58
Obmerk Kronen

من w3 :

readonly = "readonly" أو "" (سلسلة فارغة) أو فارغة - تحدد أن هذا العنصر يمثل عنصر تحكم لا تقصد قيمته ليتم تحريرها.

لذلك أساسا هو نفسه.

66
Vucko

HTML5 spec :

http://www.w3.org/TR/html5/forms.html#attr-input-readonly :

السمة للقراءة فقط هي سمة منطقية

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

يمثل وجود سمة منطقية على عنصر القيمة الحقيقية ، ويمثل غياب السمة القيمة الخاطئة.

إذا كانت السمة موجودة ، يجب أن تكون قيمتها هي السلسلة الفارغة أو القيمة التي هي ASCII مطابقة لحالة الأحرف للاسم المتعارف عليه للسمة ، مع عدم وجود مسافة بادئة أو بيضاء.

خاتمة :

التالي صحيح ، مكافئ وصحيح :

<input type="text" readonly />
<input type="text" readonly="" />
<input type="text" readonly="readonly" />
<input type="text" readonly="ReAdOnLy" />

فيما يلي غير صالح :

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

غياب السمة هو الصيغة الصحيحة الوحيدة لـ false :

<input type="text"/>

التوصية

إذا كنت تهتم بكتابة XHTML صالح ، فاستخدم readonly="readonly" ، لأن <input readonly> غير صالح وأن البدائل الأخرى أقل قابلية للقراءة. آخر ، فقط استخدم <input readonly> لأنه أقصر.

يجب أن يكون

<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" />
4
billah77