我正在使用实体注册来让用户注册一个事件。我有一些字段要根据其他字段的值进行验证。
因此,使用hook_form_id_form_alter,我能够添加第二个验证功能。第二个功能是我希望我可以添加验证注册表单的代码。
function coastal_custom_form_registration_form_alter($form, &$form_state, $form_id) {
$form['#validate'][] = 'event_registration_form_validate';
}
但每当我提交表单时,应该执行验证的函数永远不会被调用。
//this function never gets called
function event_registration_form_validate(&$form, &$form_state){
drupal_set_message('hi from validation');
form_set_error('you are in form_registration');
}
我一直想着如何做这一整天。有没有人想出这是怎么做到的?感谢。
答案 0 :(得分:1)
读取hook_form_alter上的api文档,我发现你必须通过引用$ form传递。所以编写函数的正确方法应该是:
function coastal_custom_form_registration_form_alter(&$form, &$form_state, $form_id) {
$form['#validate'][] = 'event_registration_form_validate';
}
请注意$ form变量之前有&符号(&)。