2012-05-14 44 views
1

酷似这是去年问的,但这个问题是为Drupal 6,我想知道是否有一直为Drupal 7.改变如何使用多个提交表单元素在表单上设置默认提交按钮?

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

在我的表单中的问题,我对四个提交按钮表单元素。四个中的三个具有指定的提交功能,另一个使用默认的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)

现在,如果我按下表格上的输入,Button_1得到执行。我希望主按钮是默认按钮,这样当用户按下回车键后,该主按钮就不会被提交到Button_1

在上面提到的帖子中,其中一个答案是使用体重。我尝试使用重量,但所做的只是改变了按钮在屏幕上的排列方式。是的,这确实允许Main_Button被提交,但是我需要那个按钮在它的原始位置。

回答

2

这不能用HTML来完成。 (所以没有什么表单API可以做的)因为没有标准和没有html属性来处理多重提交表单中的默认提交。你应该使用CSS,但如果你不想restyle你可以使用jQuery。祝你好运!

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

JavaScript本来是最后的手段。但是如果没有其他办法可以做到这一点,那就不得不这样做了。 – samwell

+0

@ chudapati09它可能需要一些创造性的样式,但你总是可以使用CSS。不管怎样,不要责怪表单API,因为更改默认提交不能用HTML完成。它总是第一个。 –

+0

@ chudapati09我调查过,似乎这不是Form Api限制。它只是不能用HTML来完成。所以不要因为不能用PHP做到这一点而感到难过:) –