在Drupal 7中,有没有办法从显示器堆栈中弹出表单错误和/或阻止它们显示?

时间:2011-12-02 18:17:12

标签: forms drupal drupal-7

我有一个Drupal 7表单,我允许用户通过AJAX提交。如果用户未填写必填字段或输入无效信息,我可以将其返回并通过form_get_errors()功能提醒用户。问题是这些值仍然在“显示堆栈”上(不是正确的术语,我敢肯定) - 当用户刷新页面或导航到另一个页面时,会显示这些先前的错误。

有没有办法设置这些错误,一旦我用form_get_errors()抓住它们就不显示?

编辑:我有一个选项是删除所有验证函数,然后在我的ajax提交处理程序中手动执行验证......但我觉得这样做会破坏此表单API的用途。我想使用内置的所有内容,但我只是希望不显示错误消息。

1 个答案:

答案 0 :(得分:1)

快速浏览form_set_error()函数(由form_get_errors()调用)显示它正在使用Drupal 7静态缓存模式来保存错误消息。您应该能够通过在AJAX验证函数中调用以下内容来清除该缓存:

drupal_static_reset('form_set_error');

如果您正在使用表单API提供的AJAX(即在表单元素上设置#ajax),您可能需要查看#limit_validation_errors()以查看是否可以帮助您。