たくさんのCCKフィールドを持つフォームがあり、そのうちの1つはマスターの「リクエストタイプ」フィールドです。
マスターフィールドの状態に応じて、フォームの他のフィールドは必須です。
フォームの例:
{マスターフィールド}
{フィールド1}(常に必須、cckフォームで設定)
{垂直タブのグループをフィールドグループ化}{
-{フィールド2}(必須のIFマスターフィールド== '1')
-{フィールド3}(必要なIFマスターフィールド== '1' OR '2')
}
私はフォーム検証を使用してこれを達成しようとしています。この段階では、マスターフィールドをチェックせずにその場で必須フィールドを作成しようとしていますが、フォームの必須フィールドとしてレンダリングすることはできません...
function my_module_form_alter(&$form, $form_state, $form_id) {
switch ($form_id)
{
case 'my_node_node_form':
$form['#validate'][] = 'my_module_form_validate';
break;
default:
// nothing
break;
}
}
function my_module_form_validate($form, &$form_state) {
// there are so many versions of the same field, which one do I use?
$form['#field_info']['field_two']['required'] = '1';
$form['group_my_group']['field_two']['#required'] = '1';
$form['group_my_group']['field_two'][0]['#required'] = 'TRUE';
}
フォームを送信すると、取得するのはField One field is required.
検証関数の$formでprint_rダンプを実行すると、値を正常に変更しているが、必要に応じてレンダリングされていないことが示されます。
別のフィールド値に応じてフィールドを必須にするにはどうすればよいですか?