如何以重写形式隐藏出生日期字段?

时间:2010-07-29 04:07:31

标签: drupal drupal-6 drupal-modules drupal-fapi

在我的钩形式alter中,这是出生日期数组:

[Birthdate] => Array(
  [#type] => fieldset
  [#title] => Birthdate
  [#weight] => 1
  [profile_birthdate] => Array(
    [#type] => date
    [#title] => Birthdate
    [#default_value] =>
    [#description] => The content of this field is kept private and will not be shown publicly.
    [#required] => 1
  )
)

我试过了:

unset($form['Birthdate']['profile_birthdate']);
     unset($form['Birthdate']);

这不起作用,因为我仍然得到“请输入有效的出生日期”消息。我希望隐藏的字段没有消息。

1 个答案:

答案 0 :(得分:2)

错误消息的短语('... 有效日期......')提示从表单验证函数发出此消息。根据编写方式的不同,即使您从表单中成功删除了该字段,它仍可能会尝试验证该字段。

如果是这种情况,您需要使用不期望生日日期字段的自定义版本覆盖验证函数(检查$form['#validate']实现中hook_form_alter()的内容)。或者,您可以将其转换为'#type' => 'hidden''#type' => 'value',而不是删除字段,并提供通过验证的默认值,但最后您将分配伪造的出生日期,这可能不是你想要什么。