Как установить кнопку отправки по умолчанию в форме с несколькими элементами формы отправки?

Точно такой же вопрос был задан в прошлом году, но этот вопрос был для Drupal 6, мне интересно, были ли изменения для Drupal 7.

Могу ли я сделать вторую или более позднюю кнопку в форме Drupal кнопкой по умолчанию?

В моей форме около четырех элементов формы кнопки отправки. Три из четырех имеют указанную функцию отправки, а другой использует функцию по умолчанию hook_form_submit () для обработки отправки.

Вот как почти выглядят три кнопки:

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

Вот так выглядит основная кнопка:

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

Это порядок, в котором кнопки создаются в форме: (Button_1, Button_2, Main_Button, Button_4).

Прямо сейчас, если я нажму Enter в форме, будет выполнено Button_1. Я хочу, чтобы основная кнопка была кнопкой по умолчанию, чтобы, когда пользователь нажимает клавишу ВВОД, эта основная кнопка отправляется не Button_1.

В сообщении, упомянутом выше, одним из ответов было использование веса. Я пробовал использовать вес, но все, что мне удалось, - это изменить порядок расположения кнопок на экране. Да, это позволило отправить Main_Button, но тогда мне понадобилась эта кнопка в ее исходном месте.


person samwell    schedule 14.05.2012    source источник


Ответы (2)


Этого нельзя сделать только с помощью HTML. (Таким образом, Form API ничего не может сделать) Поскольку нет ни стандарта, ни свойств html для обработки отправки по умолчанию в форме с несколькими отправками. Вам следует использовать CSS, но если вы не хотите изменять стиль, вы можете использовать jQuery. Удачи!

 //Not tested
  $("#target").keypress(function(event) {
    if ( event.which == 13 ) {
       event.preventDefault();
       $('correctSubmit').submit();
     }
  });
person Miguel Lomelí    schedule 15.05.2012
comment
JavaScript был бы последним средством. Но если нет другого способа сделать это, кроме как через это, то это должно быть сделано. - person samwell; 15.05.2012
comment
@ chudapati09 Может потребоваться немного творчества со стилем, но вы всегда можете использовать CSS. В любом случае не обвиняйте Form API в том, что изменение отправки по умолчанию не может быть выполнено только с помощью HTML. Всегда первый. - person Miguel Lomelí; 15.05.2012
comment
@ chudapati09 Я исследовал, и мне кажется, что это не ограничение Form Api. Это просто невозможно сделать с помощью одного лишь HTML. Так что не расстраивайтесь из-за того, что не можете сделать это с помощью PHP :) - person Miguel Lomelí; 15.05.2012
comment
Спасибо, что изучили это. В этом есть смысл. - person samwell; 16.05.2012

Решение, указанное на странице Как кнопка отправки по умолчанию в форме HTML определена? показывает способ решения этой проблемы на чистом HTML / CSS. Я расширил эту тему на http://pahsah.com/2015/08/10/html-forms-specifying-a-default-submit-button-pure-htmlcss-approach/.

person Shan Plourde    schedule 10.08.2015