<script src="https://www.google.com/recaptcha/api.js?render={{ recaptcha_key }}"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
const form = document.getElementById('order-callback');
const formResult = document.getElementById('form-result');
// Проверяем, существует ли форма на странице, чтобы избежать ошибок
if (form) {
form.addEventListener('submit', function (e) {
alert('submit');
e.preventDefault();
// 2. Получаем токен reCAPTCHA
grecaptcha.ready(function () {
alert('g cap')
grecaptcha.execute('{{ recaptcha_key }}', { action: 'callback_form' }).then(function (token) {
// Добавляем токен в скрытое поле формы
const recaptchaInput = form.querySelector('input[name="g-recaptcha-response"]');
recaptchaInput.value = token;
// 3. Отправляем данные формы с помощью AJAX (Fetch API)
// Собираем все данные из формы
const formData = new FormData(form);
fetch(form.action, {
method: form.method,
body: formData
})
.then(response => response.json()) // Ожидаем от сервера ответ в формате JSON
.then(data => {
})
.catch(error => {
// Обработка сетевых ошибок
console.error('Ошибка при отправке AJAX:', error);
formResult.innerHTML = '<p style="color: red;">Произошла сетевая ошибка. Попробуйте позже.</p>';
});
});
});
});
}
});
</script>
<div class="modal" id="modal_callback" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span
class="sr-only">Close</span></button>
<div class="h4"><i class=" icon-mail-2"></i> {{ labels.get('modal-callback-1')|raw }} </div>
</div>
<div class="modal-body">
<form id="order-callback" method="post" action="{{ path('callback') }}">
<input type="hidden" name="code" value="" class="g-code" id="g-code">
<div class="form-group" id="callback-form-name">
<label for="recipient-name2" class="control-label">{{ labels.get('modal-callback-2')|raw }}</label>
<input class="form-control" id="recipient-name2" placeholder="{{ labels.get('modal-callback-6')|raw }}"
data-placement="top" data-trigger="manual"
data-content="Must be at least 3 characters long, and must only contain letters."
type="text" name="name">
</div>
<div class="form-group" id="callback-form-phone">
<label for="recipient-Phone-Number2" class="control-label">{{ labels.get('modal-callback-3')|raw }}</label>
<input type="text" maxlength="60" class="form-control" id="recipient-Phone-Number2" placeholder="{{ labels.get('modal-callback-7')|raw }}" name="phone">
</div>
<div class="form-group">
<p class="pull-left text-danger hide" id="callback-form-error"> {{ labels.get('modal-callback-4')|raw }} </p>
</div>
</form>
</div>
<div class="modal-footer">
<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response">
<button type="button" class="btn btn-default" data-dismiss="modal" id="sendclose2">{{ labels.get('modal-callback-5')|raw }}</button>
<input type="submit" class="btn btn-callback pull-right" id="sendcallback" value="{{ labels.get('modal-callback-8')|raw }}">
</div>
</div>
</div>
</div>