在我的钩形式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']);
这不起作用,因为我仍然得到“请输入有效的出生日期”消息。我希望隐藏的字段没有消息。
答案 0 :(得分:2)
错误消息的短语('... 有效日期......')提示从表单验证函数发出此消息。根据编写方式的不同,即使您从表单中成功删除了该字段,它仍可能会尝试验证该字段。
如果是这种情况,您需要使用不期望生日日期字段的自定义版本覆盖验证函数(检查$form['#validate']
实现中hook_form_alter()
的内容)。或者,您可以将其转换为'#type' => 'hidden'
或'#type' => 'value'
,而不是删除字段,并提供通过验证的默认值,但最后您将分配伪造的出生日期,这可能不是你想要什么。