hook_form_submit没有被调用

Jam*_*iss 3 drupal drupal-6 drupal-fapi

我正在尝试提交表单并使用hook_form_submit.

问题是表单是通过ajax显示的,这导致hook_form_submit没有被调用.

$items['ajaxgetform/%'] = array(  
  'page callback' => 'ajaxgetform',  
  'access arguments' => array('access content'),  
  'type' => MENU_CALLBACK  
);   

function ajaxgetform($form_id) {    
  drupal_get_form($form_id);  
  return drupal_json($panel);  
}  

function_myform_form($form_state) {  
  $form['myform'] = array(  
    '#title' => 'myform value',  
    '#type' => 'textfield',  
    '#default_value' => 'myform default value'  
  );  

  $form['#action'] = url('myurl');

  $form['submit'] = array(  
    '#type' => 'submit',  
    '#value' => 'submit'  
  );

  $form['#ajaxsubmit'] = TRUE;  
    return $form;  
  }  
Run Code Online (Sandbox Code Playgroud)

hook_form_alter() 确实被召唤了.

下面没有被调用?

function myform_form_submit($form, $form_state) {   
  // ...  
} 
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是一个常见的问题,但我已经被困了几个小时试图让它工作.

如果我删除 $form['#action'] = url('myurl'); myform_form_submit()被调用.但是我得到了一个带有jason脚本的白色屏幕.

小智 8

没有hook_form_submit().相反,您注册提交处理程序$form['#submit'].因此,如果要myform_form_submit()在提交表单时调用,请添加:

$form['#submit'][] = 'myform_form_submit';
Run Code Online (Sandbox Code Playgroud)

myform_form().有关详细信息,请查看5.x到6.x表单更改Forms API参考.