Drupal 如何在具有多个提交表单元素的表单上设置默认提交按钮?

Drupal 如何在具有多个提交表单元素的表单上设置默认提交按钮?,drupal,drupal-7,drupal-modules,drupal-fapi,drupal-forms,Drupal,Drupal 7,Drupal Modules,Drupal Fapi,Drupal Forms,去年提出了一个与此完全相同的问题,但这个问题是针对Drupal6的,我想知道Drupal7是否有变化 在我的表单中,我有四个提交按钮表单元素。其中三个具有指定的提交函数,另一个使用默认的hook_form_submit()函数来处理其提交 这就是三个按钮的大致外观: $form['reset'] = array( '#type' => 'submit', '#value' => t('Reset Values'), '#submit' => array('_

去年提出了一个与此完全相同的问题,但这个问题是针对Drupal6的,我想知道Drupal7是否有变化

在我的表单中,我有四个提交按钮表单元素。其中三个具有指定的提交函数,另一个使用默认的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'),
);
这是以以下形式创建按钮的顺序:
(按钮1、按钮2、主按钮、按钮4)

现在,如果我在表单上按enter键,
按钮1
将被执行。我希望主按钮是默认按钮,这样当用户按enter键时,该主按钮不会提交
按钮1


在上面提到的帖子中,答案之一是使用重量。我试着使用重量,但所做的只是改变了按钮在屏幕上的排列方式。是的,这确实允许提交
Main_按钮
,但我需要将该按钮放在其原始位置。

这不能仅用HTML完成。(因此表单API无能为力)因为没有标准和html属性来处理多重提交表单中的默认提交。您应该使用CSS,但如果不想重新设置样式,可以使用jQuery。祝你好运

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

在中标识的解决方案显示了一种解决此问题的纯HTML/CSS方法。我已经在上一节详细介绍了这个话题

JavaScript将是最后的手段。但是,如果除了通过这个,没有其他方法可以做到这一点,那么这就必须做到。@chudapati09它可能需要在样式方面有一点创造性,但您始终可以使用CSS。无论如何,不要责怪表单API,因为更改默认提交不能只用HTML完成。它总是第一个。@chudapati09我调查过,似乎这不是表单Api的限制。仅仅用HTML是做不到的。所以,不要为不能用PHP实现而感到难过:)感谢您的关注。这是有道理的。