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
我创建了用于将表单呈现到 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