How to set a default submit button on a form with multiple submit form elements?

2.3k views Asked by At

A question exactly like this was asked last year, but this question was for Drupal 6, I'm wondering if there has been a change for Drupal 7.

Can I make the second or later button in a Drupal form the default button?

In my form, I have about four submit button form elements. Three of the four have a specified submit function and the other one uses the default hook_form_submit() function to handle it's submission.

So this is what three buttons almost look like:

$form['reset'] = array(
   '#type' => 'submit',
   '#value' => t('Reset Values'),
   '#submit' => array('_phonebook_reset_config'),
);

This is what the main button looks like:

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

This is the order in which the buttons are created in the form: (Button_1, Button_2, Main_Button, Button_4).

Right now if I press enter on the form, Button_1 gets executed. I want the main button to be the default button, so that when the user press enter, that main button is submitted not Button_1.

In the post mentioned above, one of the answers was to use weight. I tried using weight, but all that did was change the way the button was ordered on the screen. Yes this did allow the Main_Button, to be submitted, but then I needed that button in its original location.

2

There are 2 answers

4
Miguel LomelĂ­ On BEST ANSWER

This can't be done with just HTML. (So there's nothing Form API can do) As there is no standard and no html properties to handle a default submit in a multiple submit form. You should use CSS but if you don't wanna restyle you can use jQuery. Good luck!

 //Not tested
  $("#target").keypress(function(event) {
    if ( event.which == 13 ) {
       event.preventDefault();
       $('correctSubmit').submit();
     }
  });
0
Shan Plourde On

The solution identified at How is the default submit button on an HTML form determined? shows a pure HTML / CSS way to address this. I've expanded on the topic at http://pahsah.com/2015/08/10/html-forms-specifying-a-default-submit-button-pure-htmlcss-approach/.