drupal 7在form_user_profile_form_alter中创建字段

时间:2012-09-27 16:36:17

标签: drupal-7 drupal-modules

我使用Drupal 7.x. 我在用户个人资料表单中添加了几个字段。

在注册中我不需要它们,但在第一次登录时必须填写。 我无法使用Profile2模块。

在我的模块中:

function mymodule_form_user_profile_form_alter(&$form, &$form_state) {      
          $form['field_test_field']['#required'] = 'TRUE';   
}

该函数被触发,但不要求它。

我也试过了:

$form['field_test_field'][0]['#required'] = 'TRUE';  
$form['#field_info']['field_test_field']['required'] = '1'; 

如何在表单中使user_profile_form字段为必填项?

3 个答案:

答案 0 :(得分:2)

以下示例可用于文本字段:

$form['field_full_name'][LANGUAGE_NONE]['0']['value']['#required'] = TRUE;

第二个例子是电子邮件字段:

$form['field_custom_email_address'][LANGUAGE_NONE]['0']['email']['#required'] = TRUE;

答案 1 :(得分:0)

您当前正在将#required设置为字符串(使用单引号),而不是它需要的布尔值。给它一个去$form['field_test_field']['#required'] = true;

答案 2 :(得分:0)

我找到了解决方案:How to disable a field or make it readonly in Drupal 7

$form['field_secured_title']['und']['0']['value']['#attributes']['disabled'] = TRUE;

这很有用。

但如果我使用多语言它仍然有用吗?

抱歉我的英语。