Как изменить код кнопки webform?

Главные вкладки

Аватар пользователя VasyOK VasyOK 2 февраля 2023 в 12:08

Всем привет.

Подскажите: как в код кнопки отправки webform добавить onclick="ym(26005986, 'reachGoal', 'zakazat'); return true;" ?

У меня 2 варианта:
1. В настройках кнопки вебформы указать что-то из:
button custom attributes (YAML)
Элемент custom attributes (YAML)
Custom properties
Не получается Sad

2. Темизировать input.html.twig для конкретной вебформы. А как?

или как-то по другому...

Комментарии

Аватар пользователя mishasdelal mishasdelal 2 февраля 2023 в 15:57

А как вариант подрубить внешний .js файл и прописать в нем что то вроде? Особенно удобно если куча целей в итоге - все в одном файле:

<script type="text/javascript">
        jQuery(".button-class").on("mousedown",function(){console.log("Reach Goal!");ym(XXXXXX, 'reachGoal', 'TARGET_NAME');});
</script>

или как вариант в редакторе формы на вкладке "Custom JS/CSS" прописать обработчики кликов.

Аватар пользователя VasyOK VasyOK 2 февраля 2023 в 17:20

Пока что выкрутился, переписав шаблон самой формы и скрыв ее кнопку через стили. Да возможно это и не особо профессионально

Аватар пользователя Babich Babich 6 февраля 2023 в 8:46
1

Код размещается или в THEMENAME.theme или в собственном модуле (MODULENAME.info.yml). Для темы это:

function THEMENAME_form_FORM_ID_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
$form['actions']['submit']['#attributes']['onclick'] = "ym(000000000,'reachGoal','TARGET_NAME'); return true;";
}

Пример webform

/*Написали письмо с сайта*/
function mytheme_form_webform_submission_contact_node_11_add_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
$form['actions']['submit']['#attributes']['onclick'] = "ym(000,'reachGoal','feedback'); return true;";
}