Модуль Contact Forms предназначен для организации произвольных форм обратной связи.
Отправка сообщения с формы осуществляется через POST запрос к /contact
Основные поля приведены в таблице
| Поле | Описание | Настройка обязательности |
|---|---|---|
| phone | номер телефона | RequirePhone |
| адрес электронной почты | RequireEMail | |
| name | имя | RequireName |
| notes | примечание/сообщение | RequireNotes |
| g-recaptcha-response | Ответ ReCaptcha | Не отключайте |
| Вложения можно сделать обязательными | RequireAttachment | |
<form id="contact_form"> <div>Email:</div> <input type="text" name="email"><br> <div>Сообщение:</div> <textarea name="notes" rows="4"></textarea><br> <div id="status"></div> <script src="https://www.google.com/recaptcha/api.js"></script> <button class="g-recaptcha button button-primary" data-size="invisible" data-sitekey="your_recaptcha_sitekey" data-action="default" data-callback='send' > Send </button> </form>
function send() {
var data = $('#contact_form').serialize();
$.post('/contact', data)
.done(function(data) {
let s = data.status;
if (s === 'OK') {
$('.popup_content').html('Сообщение отправлено');
}
else {
$('#status').html('Error: ' + data.message);
grecaptcha.reset();
}
})
.fail(function() {
alert( "error" );
grecaptcha.reset();
});
return false;
}
Если через форму хочется принимать файлы:
<input name="image" type=file />
В скрипте:
const form = document.getElementById("add_form")
const formData = new FormData(form)
const response =
await fetch('/contact', {
method: 'POST',
body: formData,
})