Drupal 7フォームAPIを使用して標準の選択ボックスを作成すると、最初の値(新しい「空白のフォーム」でも選択されたもの)はになり<option selected="selected" value="">- Select -</option>ます。この値はフォーム定義で指定されておらず、フォームの変更は行っていません。(これで結構です)
ただし、最初のを使用して2番目の選択ボックスを作成すると、その#statesようなデフォルト値はありません。複数の依存関係を持つ複雑なフォームの場合、この不整合が問題になります。
フォーム定義の例は次のとおりです。
function sb_quickquote_test_form($form, &$form_state, $post=array()) {
  $fields['first_select'] = array(
    '#type'             => 'select',
    '#title'            => 'First select box',
    '#options'          => Array('First', 'Second', 'Third'),
    '#required'         => TRUE,
  );
  $fields['dependent_delect'] = array(
    '#type'             => 'select',
    '#title'            => 'Dependent select box',
    '#options'          => Array('Something', 'Another thing', 'Something else', 'Final thing'),
    '#states'           => Array(
      'visible' => Array('select[name=first_select]' => array('value' => '2')),
      'required' => Array('select[name=first_select]' => array('value' => '2')),
    ),
  );
  $fields['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit'),
  );
  return $fields;
}この簡単な例では、2つの選択ボックスと送信ボタンがあります。2つの選択ボックスは次のように表示されます。
 ______________      ________________
| - Select - |v|    | Something    |v|
`--------------'    `----------------'
| - Select -   |    | Something      | <- no empty option
| First        |    | Another thing  |
| Second       |    | Something else |
| Third        |    | Final thing    |
 --------------      ----------------(#states設定のため、2番目の選択ボックスは、最初の選択ボックスで「3番目」が選択されている場合にのみ表示されます)
この不整合は、相互に依存するフィールドを持つ複雑な動的フォームを生成している状況で問題を引き起こしています。
なぜフィールドに一貫性のないオプションが与えられているのか、そして問題を回避するための最良のアプローチは何か考えがありますか?