在我的基于drupal的项目中,我们在笔记本用户和平板电脑用户之间做出了区别:笔记本用户在注册时可以跳过一些字段,而平板电脑用户必须填写所有字段。通过使用jQuery和现代派的注册表单隐藏或显示这些字段,这一技巧很容易实现。我说技巧,因为它很有效,尽管其中一些隐藏字段被标记为required,但是仍然允许它们注册而不需要填充它们。
当用户忘记密码并请求链接以创建新密码时,问题就出现了。当他们到达“输入新密码并确认密码”的屏幕时,最初通过笔记本电脑注册的用户(即没有填写一些required字段)无法继续,因为他们收到错误“字段X和Y不能留空”,或者类似的内容。
我想禁用这两个字段从required为Drupal (不是从注册表单,在那里我已经“隐藏”他们),但我不知道如何进行。我应该在哪里做这个?
发布于 2014-05-29 10:36:32
我建议您使用hook_form_alter(),然后检查膝上型计算机用户。如果膝上型电脑用户在表单上,那么为这两个字段设置#required false。
$form['title']['#required'] = FALSE; 注意: FYI避免在这种类型的场景中使用unset(),或者将#access属性设置为FALSE,或者将#required属性设置为FALSE。这将它们保存在表单构建树中,这样可以避免其他模块试图访问或更改该信息时出现的问题。
https://drupal.stackexchange.com/questions/115672
复制相似问题