我有一个Drupal 7表单,我允许用户通过AJAX提交。如果用户未填写必填字段或输入无效信息,我可以将其返回并通过form_get_errors()
功能提醒用户。问题是这些值仍然在“显示堆栈”上(不是正确的术语,我敢肯定) - 当用户刷新页面或导航到另一个页面时,会显示这些先前的错误。
有没有办法设置这些错误,一旦我用form_get_errors()
抓住它们就不显示?
答案 0 :(得分:1)
快速浏览form_set_error()
函数(由form_get_errors()
调用)显示它正在使用Drupal 7静态缓存模式来保存错误消息。您应该能够通过在AJAX验证函数中调用以下内容来清除该缓存:
drupal_static_reset('form_set_error');
如果您正在使用表单API提供的AJAX(即在表单元素上设置#ajax
),您可能需要查看#limit_validation_errors()
以查看是否可以帮助您。