無効にする1つのアイテムを空に変換します<optgroup>
。
長所:
- これは
hook_form_alter
、カスタムフォームを作成するときに、または直接行うことができtheme_select
ます。テーマに関数を実装する必要はありません。
短所:
- 結果のDOMで
value='title'
オリジナル<option>
に関連付けられた属性を表す方法はありません。
- YMMVは、すでにoptgroupに関連しているオプションを無効にしようとしている場合。ネストされたoptgroupは実際に機能する可能性がありますが、これはテストされておらず、確認されていません。
実装:
Drupalのoptgroupは、値がそれ自体配列であるペア#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>