Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ

I'm trying to add recaptcha to odoo signup page.  The form gets submitted and the results are good but I get UncaughtPromiseError popup, before the page gets loaded agin.
This is my js code:

/** @odoo-module **/

import publicWidget from '@web/legacy/js/public/public_widget';
import {ReCaptcha} from "@google_recaptcha/js/recaptcha";
import dom from "@web/legacy/js/core/dom";



publicWidget.registry.SignUpForm = publicWidget.Widget.extend({
selector: '.oe_signup_form',
events: {
'submit': '_onSubmit',
},

init: function () {
this._super(...arguments);
this._recaptcha = new ReCaptcha();
},


_onSubmit: async function (ev) {
ev.preventDefault();
const $btn = this.$('.oe_login_buttons > button[type="submit"]');
$btn.addClass('disabled').attr('disabled', 'disabled');
$btn.prepend('<i class="fa fa-refresh fa-spin"/> ');

try {
await this._recaptcha.loadLibs();
const tokenObj = await this._recaptcha.getToken('signup')
const form = ev.target.closest('form');
if (tokenObj.token) {
const recaptchaToken = document.createElement('input');
recaptchaToken.type = 'hidden';
recaptchaToken.name = 'recaptcha_token_response';
recaptchaToken.value = tokenObj.token;
form.appendChild(recaptchaToken);
}
form.submit();

} catch (error) {
console.error('Error getting reCAPTCHA token:', error);
$btn.removeClass('disabled').removeAttr('disabled');
$btn.find('.fa-spin').remove();
// Optionally notify the user
alert('There was an error with reCAPTCHA. Please try again.');
}
},

});

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
4
thg 5 25
6954
2
thg 12 24
4820
1
thg 12 24
1476
3
thg 4 24
4454
1
thg 1 24
2801