如何在Drupal 7中提交AJAX表单之前显示确认框?

Adn*_*nan 1 php jquery drupal-7

使用Drupal 7表单API,如何在提交AJAX表单之前提示javascript确认框?我尝试过不同的方法来做到这一点,但没有成功.这是代码:

function create_list_form($form, &$form_state) {

  $form['list_name'] = array(
    '#type' => 'textfield',
    '#required' => TRUE,
    '#title' => 'List Name'
    '#attributes' => array()
  );

  $form['list_desc'] = array(
    '#type' => 'textfield',
    '#required' => TRUE,
    '#title' => 'List Desc'
    '#attributes' => array()
  );

    $form['actions']['submit'] = array(
        '#type' => 'submit',
        '#attributes' => array('class' => array('use-ajax-submit')),            
        '#value' => 'Create List'
      );


  return $form;
}
Run Code Online (Sandbox Code Playgroud)

这是Javascript代码:

Drupal.behaviors.module = {
  attach: function() {

       jQuery('#edit-submit').click(function(){
          if(!confirm('Are you sure?'))
              return false;
      });

  }
}
Run Code Online (Sandbox Code Playgroud)

Adn*_*nan 6

我找到了解决方案.我们可以通过覆盖beforeSerialize()函数来实现:

 Drupal.behaviors.module = {
  attach: function() {  

     Drupal.ajax['edit-submit'].beforeSerialize = function () {  

          if(confirm('Are you sure?'))
              return true;
          else
              return false;

      }
   }
 }
Run Code Online (Sandbox Code Playgroud)