field-select
غلاف field حول عنصر select أصلي. فإذا تجاوزت الخيارات عشرة فعّل الـ select صندوق التحرير والسرد القابل للتصفية في select.js؛ ومع ذلك يظل ما يرسله النموذج هو الـ select الأصلي.
ثلاثة خيارات: عنصر select الأصلي
ضع هذا داخل <section rst-box><form rst-form>.
<div rst-field >
<label rst-field-label for ="sel_few" >الدور</label >
<select rst-input id ="sel_few" name ="sel_few" >
<option value ="admin" selected >مسؤول</option >
<option value ="editor" >محرر</option >
<option value ="member" >عضو</option >
</select >
</div >
ضع هذا داخل <section rst-box><form rst-form>.
{{ template "field-select" dict
"ID" "sel_few"
"Name" "sel_few"
"Label" "الدور"
"Options" (list
(dict "Label" "مسؤول" "Selected" true "Value" "admin" )
(dict "Label" "محرر" "Value" "editor" )
(dict "Label" "عضو" "Value" "member" ))}}
اثنا عشر خيارًا: مربّع الاختيار القابل للتصفية
ضع هذا داخل <section rst-box><form rst-form>.
<div rst-field >
<label rst-field-label for ="sel_many" >المدينة</label >
<select rst-input id ="sel_many" name ="sel_many" data-rst-select data-rst-select-filter ="اكتب للتصفية" data-rst-select-results ="{n} نتائج" data-rst-select-result-one ="نتيجة واحدة" data-rst-select-no-matches ="لا توجد نتائج مطابقة" aria-describedby ="sel_many-help" >
<option value ="dublin" selected >دبلن</option >
<option value ="lisbon" >لشبونة</option >
<option value ="madrid" >مدريد</option >
<option value ="berlin" >برلين</option >
<option value ="rome" >روما</option >
<option value ="athens" >أثينا</option >
<option value ="helsinki" >هلسنكي</option >
<option value ="reykjavík" >ريكيافيك</option >
<option value ="warsaw" >وارسو</option >
<option value ="zagreb" >زغرب</option >
<option value ="tallinn" >تالين</option >
<option value ="valletta" >فاليتا</option >
</select >
<p rst-field-help id ="sel_many-help" >ابدأ الكتابة للتصفية.</p >
</div >
ضع هذا داخل <section rst-box><form rst-form>.
{{ template "field-select" dict
"ID" "sel_many"
"Name" "sel_many"
"Label" "المدينة"
"Options" (list
(dict "Label" "دبلن" "Selected" true "Value" "dublin" )
(dict "Label" "لشبونة" "Value" "lisbon" )
(dict "Label" "مدريد" "Value" "madrid" )
(dict "Label" "برلين" "Value" "berlin" )
(dict "Label" "روما" "Value" "rome" )
(dict "Label" "أثينا" "Value" "athens" )
(dict "Label" "هلسنكي" "Value" "helsinki" )
(dict "Label" "ريكيافيك" "Value" "reykjavík" )
(dict "Label" "وارسو" "Value" "warsaw" )
(dict "Label" "زغرب" "Value" "zagreb" )
(dict "Label" "تالين" "Value" "tallinn" )
(dict "Label" "فاليتا" "Value" "valletta" ))
"Help" "ابدأ الكتابة للتصفية." }}
إذا تجاوزت الخيارات عشرة فعّل الجزء select.js، وإن قلّت عن عشرة فلا: البحث بين حفنة عناصر أثاث لا عون.
اثنا عشر خيارًا، Plain: مع رفض التحسين
ضع هذا داخل <section rst-box><form rst-form>.
<div rst-field >
<label rst-field-label for ="sel_plain" >المدينة</label >
<select rst-input id ="sel_plain" name ="sel_plain" >
<option value ="dublin" selected >دبلن</option >
<option value ="lisbon" >لشبونة</option >
<option value ="madrid" >مدريد</option >
<option value ="berlin" >برلين</option >
<option value ="rome" >روما</option >
<option value ="athens" >أثينا</option >
<option value ="helsinki" >هلسنكي</option >
<option value ="reykjavík" >ريكيافيك</option >
<option value ="warsaw" >وارسو</option >
<option value ="zagreb" >زغرب</option >
<option value ="tallinn" >تالين</option >
<option value ="valletta" >فاليتا</option >
</select >
</div >
ضع هذا داخل <section rst-box><form rst-form>.
{{ template "field-select" dict
"ID" "sel_plain"
"Name" "sel_plain"
"Label" "المدينة"
"Options" (list
(dict "Label" "دبلن" "Selected" true "Value" "dublin" )
(dict "Label" "لشبونة" "Value" "lisbon" )
(dict "Label" "مدريد" "Value" "madrid" )
(dict "Label" "برلين" "Value" "berlin" )
(dict "Label" "روما" "Value" "rome" )
(dict "Label" "أثينا" "Value" "athens" )
(dict "Label" "هلسنكي" "Value" "helsinki" )
(dict "Label" "ريكيافيك" "Value" "reykjavík" )
(dict "Label" "وارسو" "Value" "warsaw" )
(dict "Label" "زغرب" "Value" "zagreb" )
(dict "Label" "تالين" "Value" "tallinn" )
(dict "Label" "فاليتا" "Value" "valletta" ))
"Plain" true }}
مطلوب، مع خطأ
ضع هذا داخل <section rst-box><form rst-form>.
<div rst-field >
<label rst-field-label for ="sel_error" >الدور</label >
<select rst-input id ="sel_error" name ="sel_error" required aria-invalid ="true" aria-describedby ="sel_error-error" >
<option value ="admin" selected >مسؤول</option >
<option value ="editor" >محرر</option >
<option value ="member" >عضو</option >
</select >
<p rst-field-error id ="sel_error-error" role ="alert" >اختر دورًا لهذا الشخص.</p >
</div >
ضع هذا داخل <section rst-box><form rst-form>.
{{ template "field-select" dict
"ID" "sel_error"
"Name" "sel_error"
"Label" "الدور"
"Options" (list
(dict "Label" "مسؤول" "Selected" true "Value" "admin" )
(dict "Label" "محرر" "Value" "editor" )
(dict "Label" "عضو" "Value" "member" ))
"Required" true
"Error" "اختر دورًا لهذا الشخص." }}
مكتوب يدويًا، مع optgroup
ضع هذا داخل <section rst-box><form rst-form>.
<div rst-field >
<label rst-field-label for ="sel_grouped" >المنطقة</label >
<select rst-input id ="sel_grouped" name ="sel_grouped" data-rst-select data-rst-select-filter ="اكتب للتصفية" data-rst-select-results ="{n} نتائج" data-rst-select-result-one ="نتيجة واحدة" data-rst-select-no-matches ="لا توجد نتائج مطابقة" >
<optgroup label ="أوروبا" >
<option value ="dublin" selected >دبلن</option >
<option value ="lisbon" >لشبونة</option >
<option value ="warsaw" >وارسو</option >
</optgroup >
<optgroup label ="الأمريكتان" >
<option value ="montreal" >مونتريال</option >
<option value ="lima" >ليما</option >
<option value ="austin" >أوستن</option >
</optgroup >
<optgroup label ="آسيا" >
<option value ="osaka" >أوساكا</option >
<option value ="hanoi" >هانوي</option >
<option value ="dhaka" >دكا</option >
</optgroup >
<optgroup label ="أفريقيا" >
<option value ="accra" >أكرا</option >
<option value ="nairobi" >نيروبي</option >
<option value ="tunis" >تونس</option >
</optgroup >
</select >
</div >
Options هنا قائمة مسطّحة، فالخيارات المجمّعة شيفرة يكتبها التطبيق نفسه. ويرسم select.js المجموعات بدل إسقاطها، كما يمكن لـ select مكتوب يدويًا أن يرفض التحسين كلّيًا بـ data-rst-select="false".