我有一个带有公开过滤器表单的视图块(视图3 / Drupal 7),并启用了ajax模式。它工作正常。我在hook_form_alter()中添加了一个验证函数。它也有效,但form_set_error消息仅在页面刷新时显示。如何在没有页面重新加载的情况下设置消息?
function hook_form_alter(&$form, &$form_state, $form_id) {
if($form['#id'] === 'id_from_views') {
array_unshift($form['#validate'], '_custom_form_validate');
}
}
function _custom_form_validate($form, &$form_state) {
if(!empty($form_state['values']['field'])) {
form_set_error('field', t('Custom error message.'));
}
}
答案 0 :(得分:0)
我有类似的问题。答案是在hook_form_alter中使用ajax回调。
function hook_form_alter(&$form, &$form_state, $form_id) {
if($form['#id'] === 'id_from_views') {
$form['submit']['#ajax'] = array('callback' => '_custom_form_validate');
}
}