Drupal 表单验证重复表单错误两次

Drupal form validation repeat form error twice

我创建了用于将表单呈现到 tpl 文件中的自定义模块。 除表单验证外,一切正常。 问题是,如果我在表单中输入正确的输入,它会显示表单验证错误

我需要按两次提交按钮,然后才清除错误。

$form = drupal_get_form('custom_form') 渲染 $form;

在你hook_form_submit你可以试试这个:

function mymodule_form_submit($form, &$form_state){
         unset($_SESSION ['messages']); // Remove all existing message
         .... your code testing etc...

        // Display custom message
        // success 
        drupal_set_message(t('Success'));

        // Warning
        drupal_set_message(t('Warning'), 'warning');


        // error
        drupal_set_message(t('Error'),'error');
}

挂钩实现: 我通过实施下面给出的挂钩解决了这个问题

  custom_preprocess_page(&$variables)
  {
    $variables['custom_form_name'] = drupal_get_form('custom_form');
  }

模板文件:

<?php print render($custom_form_name); ?>

在使用 drupal_set_message 时将第三个参数显式传递为 FALSE

例如:

drupal_set_message($message = NULL, $type = 'status', $repeat = FALSE),默认情况下 $repeat 设置为 true,因此您不止一次得到。 供参考 https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/drupal_set_message/7