ما هي القيم التي يمكن أن تظهر في السمة "المحددة" لعلامة "الخيار"؟

StackOverflow https://stackoverflow.com/questions/1033944

  •  06-07-2019
  •  | 
  •  

سؤال

لدي بعض العلامات المشابهة لما يلي:

<select>
  <option selected="selected">Apple</option>
  <option selected="">Orange</option>
</select>

في هذه الحالة، يظهر "البرتقالي" كالعنصر المحدد.كنت أتوقع صنع selected السمة الفارغة من شأنها التراجع عن آثارها.هل هناك طريقة لكتابة هذا دون ترك السمة ببساطة؟

هل كانت مفيدة؟

المحلول

ومتصفح مختلف قد علاج هذه السمة بشكل مختلف. استنادا إلى وثائق MSDN (الإنترنت إكسبلورر):

<اقتباس فقرة>   

لتحديد عنصر في HTML، فإنه ليس   من الضروري وضع قيمة   مختارة السمة إلى true. ومجرد   بحضور مجموعة السمة المحددة   قيمته إلى true.

في فايرفوكس وسفاري هذا لا يعمل:

<option selected='false' />

ومن ما استطيع ان اقول من خلال النظر في المعايير WC3 الرسمي لHTML4، حالة معتمد فقط:

<option selected='selected' />

وسوف تحتاج إما إلى تنبعث منها بشكل انتقائي السمة، أو استخدام جافا سكريبت للسيطرة العنصر الذي تم تحديده في البداية.

نصائح أخرى

مواصفات HTML5

https://www.w3.org/TR/html51/sec-forms.html#the-option-element

سمة المحتوى المحددة هي سمة منطقية.

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

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

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

خاتمة

وفيما يلي صالحة ومكافئة وصحيحة:

<option selected />
<option selected="" />
<option selected="selected" />
<option selected="SeLeCtEd" />

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

<option selected="0" />
<option selected="1" />
<option selected="false" />
<option selected="true" />

غياب السمة هو بناء الجملة الوحيد الصالح لـ خطأ شنيع:

<option />

توصية

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

القيمة الوحيدة المسموح بها للسمة المحددة في XHTML هي "المحدد" لذا، إذا كنت تريد أن يكون ترميزك متوافقًا مع XHTML وأن يعمل عبر جميع المتصفحات، فإن تركه خارجًا هو الخيار الوحيد لجعله غير محدد

وكلا، وجود السمة المحددة يخبر المتصفح أن هذا هو العنصر المحدد. أي شيء داخل علامات الاقتباس يتم تجاهل.

وتحرير: ما الذي يمكن أن تفعله (مع جافا سكريبت) هو البحث عن علامات الخيار مع اختيار = ""، وإزالة السمة المحددة منها

.

في HTML (في مقابل XHTML) سمة selected بسيطة، مع عدم وجود قيمة على الإطلاق، يعمل بشكل جيد:

<option selected>Apple</option>
<option>Orange</option>

في XHTML (بما في ذلك XHTML5) كنت في حاجة الى القيمة، والتي ينبغي أيضا أن selected:

<option selected="selected">Apple</option>
<option>Orange</option>

وهذا يعمل أيضا على ما يرام في HTML.

وهذا هو الحال بالنسبة لقيم منطقية في (X) HTML عموما. الطريق إلى مجموعة منهم إلى false هو حذف منها تماما. قد تعمل القيم تحديد من true وfalse، ولكن هو غير قياسي.

لاحظ أن للحصول على قائمة من الخيارات، يتم تحديد أول افتراضيا، لذلك هذا ليس ضروريا على الإطلاق في هذه الحالة.

ووفقا ل w3schools ، يجب أن تكون وضع على النحو التالي: مختارة = "المختارة ". هذا يقول لك الخيار الذي تم تحديده في البداية، ويسمح لك لتعيين خلال البرنامج النصي في وقت لاحق.

ليست هناك أية قيم صالحة أخرى غير "مختارة" لهذه السمة. ( http://www.w3schools.com/TAGS/att_option_selected.asp )

وكنت أفضل حالا تعيين الخاصية selectElement.selectedIndex من جافا سكريبت، أو إزالة السمة تماما.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top