2012-05-14 46 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做到這一點而感到難過:) –