एक एकल आइटम जिसे आप रिक्त में अक्षम करना चाहते हैं, उसे रूपांतरित करें <optgroup>।
पेशेवरों:
- यह
hook_form_alterआपके कस्टम फॉर्म का निर्माण करते समय या सीधे किया जा सकता है , theme_selectआपके विषय में फ़ंक्शन को लागू करने की कोई आवश्यकता नहीं है ।
विपक्ष:
- परिणामी DOM में
value='title'मूल से जुड़ी विशेषता को दर्शाने का कोई तरीका नहीं है <option>।
- YMMV यदि आप एक विकल्प को अक्षम करने का प्रयास कर रहे हैं जो पहले से ही एक ऑप्टग्रुप से संबंधित है। नेस्टेड ऑप्टग्रेप्स वास्तव में काम कर सकते हैं, लेकिन यह अप्रयुक्त और अपुष्ट है।
कार्यान्वयन:
Drupal में Optgroups #optionsको किसी भी key => valueजोड़े के रूप में सरणी के अंदर निरूपित किया जाता है जहाँ मूल्य स्वयं एक सरणी है।
इसलिए ओपी में उदाहरण से हम मूल्य 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>