<optgroup>
แปลงหนึ่งรายการเดียวที่คุณต้องการที่จะปิดการใช้งานเป็นที่ว่างเปล่า
ข้อดี:
- สิ่งนี้สามารถทำได้ใน
hook_form_alter
หรือโดยตรงเมื่อสร้างแบบฟอร์มที่กำหนดเองของคุณไม่จำเป็นต้องใช้theme_select
ฟังก์ชั่นในชุดรูปแบบของคุณ
จุดด้อย:
- ไม่มีวิธีในการแสดง
value='title'
แอตทริบิวต์ที่เกี่ยวข้องกับต้นฉบับ<option>
ใน DOM ที่เป็นผลลัพธ์
- YMMV หากคุณพยายามปิดใช้งานตัวเลือกที่เกี่ยวข้องกับ optgroup อยู่แล้ว กลุ่ม optg ที่ซ้อนกันอาจใช้งานได้จริง แต่นี่ยังไม่ได้ทดสอบและไม่ยืนยัน
การดำเนินงาน:
Optgroups ใน Drupal จะแทนค่าภายใน#options
อาเรย์เป็นkey => value
คู่ใด ๆที่ค่านั้นเป็นอาเรย์
ดังนั้นจากตัวอย่างใน OP เราจะย้ายค่าของt('Titles only')
การกลายเป็นkey
แล้วทำให้ค่าเป็นอาร์เรย์ว่าง
$form['feed'] = array(
'#type' => 'select',
'#title' => t('Display of XML feed items'),
'#options' => array(
t('Titles only') => array(), // This one becomes disabled as an empty optgroup
'teaser' => t('Titles plus teaser'),
'fulltext' => t('Full text'),
),
'#description' => t('Global setting for the length of XML feed items that are output by default.'),
);
HTML ที่ได้จะเป็นดังนี้:
<form>
<div>
<label>Display of XML feed items</label>
<select>
<optgroup>Titles only</optgroup>
<option value="teaser">Titles plus teaser</option>
<option value="fulltext">Full text</option>
</select>
</div>
</form>