Я использую камень recaptcha.Rails 5.2.
У меня есть следующая форма:
= simple_form_for @quote_request_form, url: quote_requests_path, html: {id: "invisible-recaptcha-form"} do |f|
.form-group
= f.input :name, label: false, placeholder: 'First and Last Name',
.form-group.actions.mt-5
button.btn.btn-primary.btn-lg.btn-block#submit-btn Submit
= invisible_recaptcha_tags ui: :invisible, callback: 'submitInvisibleRecaptchaForm'
Я добавил следующий javascript для формы:
javascript:
document.getElementById('submit-btn').addEventListener('click', function (e) {
e.preventDefault();
grecaptcha.execute();
});
var submitInvisibleRecaptchaForm = function () {
document.getElementById("invisible-recaptcha-form").submit();
};
Я проверяю значение из recaptchaв моем контроллере следующим образом:
if verify_recaptcha(model: @quote_request_form) && @quote_request_form.save
redirect_to quote_confirm_path, notice: "Your quotation request is being processed"
else
render :new
end
Все это работает, пока я использую e.preventDefault ();линия.Если я удаляю эту строку, я получаю ошибку с recaptcha и вижу в параметрах, которые attriburte recaptcha отправляет в пустых данных.
Я не понимаю, зачем мне это нужно, поскольку ни одна из документации не указываетЭто.Так что я делаю что-то не так, но не могу понять.
Кто-нибудь может увидеть, как я могу это исправить?