0

Drupal 8 サイトにコンタクト フォームがあり、プレビュー ボタンを削除して、送信ボタンの html をカスタマイズしたいと考えています。

私は自分のテーマでこれを試しました:

function mytheme_form_contact_message_feedback_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {

  $form['submit']['#prefix'] = '<div class="contact-form-btn col-xs-12 col-md-10 col-md-offset-2 no-pad-left">';
  $form['submit']['#suffix'] = '</div>';
  $form['submit']['#value'] = 'Submit';
  $form['submit']['#title'] = 'Submit';

}

しかし、それはそれをラップするhtmlやボタン自体のラベルを変更するようには見えません。

また、プレビューボタンを削除する方法について何かアドバイスがありましたら、よろしくお願いします!

4

4 に答える 4

2

あなたのコードは

function mytheme_form_contact_message_feedback_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {

    $form['actions']['submit']['#prefix'] = '<div class="contact-form-btn col-xs-12 col-md-10 col-md-offset-2 no-pad-left">';
    $form['actions']['submit']['#suffix'] = '</div>';
    $form['actions']['submit']['#value'] = 'Your value';
}

ありがとう

于 2016-06-20T07:26:53.660 に答える
0

上記の回答のリンクから得た、私にとって何がうまくいったかを説明するだけです。

mytheme.theme ファイルに次のコードを追加すると、プレビュー ボタンを削除し、送信ボタンのテキストを変更することもできます。

function mytheme_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {

  if (in_array($form_id, ['contact_message_feedback_form', ])) {
    $key = ($form_id == 'contact_message_feedback_form') ? 'actions' : 'basic';
    $form[$key]['submit']['#value'] = 'My Submit Message';
    $form[$key]['preview']['#access'] = FALSE;
  }
}
于 2018-08-10T18:22:00.900 に答える