这个问题与去年的问题完全相同,但这个问题是针对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)
。
现在,如果我在表单上按Enter键,Button_1
将被执行。我希望主按钮成为默认按钮,这样当用户按下回车键时,该主按钮不会被提交Button_1
。
在上面提到的帖子中,其中一个答案是使用重量。我尝试使用重量,但所做的只是改变按钮在屏幕上的排序方式。是的,这确实允许提交Main_Button
,但之后我在原始位置需要该按钮。
答案 0 :(得分:2)
仅使用HTML无法做到这一点。 (因此没有Form API可以做的事情)因为没有标准的,没有html属性来处理多重提交表单中的默认提交。你应该使用CSS,但如果你不想重新使用,你可以使用jQuery。祝你好运!
//Not tested
$("#target").keypress(function(event) {
if ( event.which == 13 ) {
event.preventDefault();
$('correctSubmit').submit();
}
});
答案 1 :(得分:0)
在How is the default submit button on an HTML form determined?标识的解决方案显示了一种纯HTML / CSS方式来解决这个问题。我在http://pahsah.com/2015/08/10/html-forms-specifying-a-default-submit-button-pure-htmlcss-approach/扩展了这个主题。