Drupal节点表单有条件地从字段

时间:2016-07-12 13:42:05

标签: drupal-7 field nodes required

我正在尝试以编程方式从某些节点/ * / edit字段中删除所需的状态。默认情况下会设置所需状态,并且只应根据分类字段中的选定值删除该状态:

使用以下代码:

function mymodule_form_node_form_alter(&$form, &$form_state, $form_id) {
    if( $form_id == 'job_node_form' ){
        $form['#after_build'] = array('test');
    }
}

function test(&$form, &$form_state) {
    $form['title']['#required'] = FALSE; // works
    $form['jobs_schools_data']['field_job_type']['#required'] = FALSE; // does NOT work
    return $form;
}

我发现我可以从标题字段中成功删除所需的状态,但对于我在上面的代码示例中添加的字段(例如 field_job_type ),这同样不起作用。

为什么这不起作用,以及我如何纠正它?

1 个答案:

答案 0 :(得分:0)

我有类似的东西,在实际的形式中我没有在两个字段上设置所需的状态,只有一个应该显示是否满足某些标准。然后,我创建了一个自定义函数来检查是否填充了一个字段,然后根据该字段设置错误消息。

function events_registration_form_validate($form, &$form_state){
     $selected_time = $form_state['values']['time_selected'];
if ($form_state['values']['time_selected'] == '') {
  form_set_error('time_selected', t('Please choose an event time.'));