我正在使用mymodule_form_alter hook
我想在提交后更改表单字段的值。
任何人都知道如何做到这一点。我正在使用drupal7。
以下是代码
function check_domain_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
case "user_register_form":
$form['#submit'][] = 'check_domain_user_register_form_submit';
break;
}
}
function check_domain_user_register_form_submit($form, &$form_state) {
$form_state['input']['profile_main']['field_firm_company_name']['und'][0]['value']='test';
}
答案 0 :(得分:3)
在此过程中调用提交处理程序的时间太晚......值字段值已经保存。您还想使用$form_state['values']
,而不是$form_state['input']
。
如果您将代码移动到验证处理程序,那么您应该获得更多运气:
function check_domain_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
case "user_register_form":
$form['#validate'][] = 'check_domain_user_register_form_validate';
break;
}
}
function check_domain_user_register_form_validate($form, &$form_state) {
$form_state['values']['profile_main']['field_firm_company_name']['und'][0]['value']='test';
}