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 回答
1

我不确定为什么它不像我在上面那样工作 - 因为这适用于表单上的所有其他字段,但这里发布的解决方案有效。

于 2016-06-19T18:00:29.983 回答
0

也许您可以使用联系人存储(对 Drupal 8 中的表单非常有用)。它允许您将随表单发送的数据存储在数据库中,自定义按钮文本,隐藏预览按钮

于 2018-01-05T22:47:10.933 回答
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 回答