改变drupal 7中表单元素的“required”属性

时间:2012-08-28 05:49:56

标签: drupal drupal-7 drupal-forms form-api hook-form-alter

我有一些需要某些形式的字段,我希望它们在某个地方被要求而在另一个地方不需要它们(我想要它们,也许你建议我在cck中使用存在字段,但这个字段不在cck中。) 我使用了profile2模块和一些配置文件类型,我希望在配置文件类型编辑页面中,例如需要name字段,并且不需要用户注册name字段。 我尝试在表单中更改#require字段的name属性,它已正确更改但在验证中告诉我name字段是必需的。

in

      function mymodule_form_alter(&$form,&$form_state) {
            if ($form_id == 'user_register_form') {
              $form['profile_detailp']['field_name']['und']['#required']=0;
              ...
              }

      }

任何想法?

2 个答案:

答案 0 :(得分:3)

你的方法没问题,必须工作,但可能在另一个模块require

     function mymodule_form_alter(&$form,&$form_state) {
        if ($form_id == 'user_register_form') {
          $form['profile_detailp']['field_name']['und']['#required']=0;
          ...
          }

  }

答案 1 :(得分:0)

文本字段需要这样做

function mymodule_form_alter(&$form,&$form_state) {
  if ($form_id == 'user_register_form') {
    $form['profile_detailp']['field_name']['und'][0]['value']['#required']=0;
  }
}