我有一个包含一堆 CCK 字段的表单,其中一个是主“请求类型”字段。
表单上的其他字段是必需的,具体取决于主字段的状态。
示例表格:
{主字段}
{field one}(始终需要,由 cck 表单设置)
{fieldgroup 我的垂直标签组} {
-{字段二}(必需的 IF 主字段 == '1')
-{字段三}(必需的 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 转储时,它表明我已成功更改值,但未按要求呈现。
如何根据另一个字段值使一个字段成为必填字段?