我在 Drupal 7 - hook_FORM_ID_form_alter() 中实现了一个自定义表单验证,方法是设置一个简单的回调函数,如下所示:
$form['#submit'][]= 'mymodule_myformid_submission_submit';
在提交函数中,我自己进行表单验证,并且基于此操作,我想在原始页面中执行一个 JavaScript 函数,在那里我重定向(使用 aheader('Location: ...')
或$form_state['redirect'];
两者都可以正常工作)。我已经达到通过使用实现 JS 发送和执行:
unset($_SESSION['messages']);
drupal_set_message("<script>aftersubmit();</script>");
我唯一的问题是我在页面顶部有一个小的空白条纹,对应于 Drupal 消息区域(尽管我使用完全自定义的主题,只有一个内容区域 + 面板),我可以通过这样做取出location.reload(true);
在 JS 函数的末尾。但这需要 1 秒才能重新加载。我曾尝试使用 echo,但它不起作用(我知道为什么)。我确信我发送 JS 代码的方式drupal_set_message()
是不合适的。我应该怎么办?(不想使用Ajax,因为我刚开始学习Drupal)谢谢