PageSourceSearch

https://www.daniel-moquet.fr/funnel-rdv/public/js/reminder/reminder.js

js daniel-moquet.fr collected 2026-10-09 22:40:18 UTC 2,741 bytes, 78 lines download raw bytes

1window.gtag = function () {
2    dataLayer.push(arguments);
3}
4
5const submitBtn = document.getElementById("submitButton");
6const formEl = document.getElementById("reminderForm");
7const inputBesoins = document.querySelectorAll('[data-watch="checkboxNeed"]');
8const messagesArea = document.querySelector('[data-interact="funnel-messages"]');
9const phoneField = document.getElementById('telephone');
10
11phoneField.addEventListener(('input'), (event) => {
12    submitBtn.disabled = event.target.value === "";
13})
14
15submitBtn.addEventListener('click', (e) => {
16    e.preventDefault();
17    if(!formIsValid()) {
18        return;
19    }
20
21    grecaptcha.execute().then((token) => {
22        document.getElementById('g-recaptcha-response').value = token;
23        const url= window.url_site.value + "api/reminder.php";
24        let formData = new FormData(formEl);
25        fetch(url, {
26            method: 'POST',
27            body: formData
28        })
29            .then((response) => response.json())
30            .then((data) => {
31                if(data.status !== 200) {
32                    messagesArea.innerHTML = layout_message(data.message, 'error');
33                    return;
34                }
35
36                window.gtag(
37                    'event',
38                    'formulaire_rappel',
39                    {
40                        'event_category': 'formulaire',
41                        'event_label': 'rappel',
42                        'value': 1
43                    }
44                );
45                formEl.submit()
46            })
47            .catch((err) => {
48                console.error(err);
49            })
50    });
51
52
53});
54
55function formIsValid() {
56    // On vérifie qu'au moins un projet est sélectionné et qu'un numéro de téléphone est renseigné
57    const phoneMessageArea = document.getElementById('phone-msg-area');
58    const nbSelectedProjects = Array.from(inputBesoins).filter( _ => _.checked ).length;
59    const prefixPhoneField = document.getElementById('country-prefix-phone');
60    const isAllBrandWebsite = window.location.href.startsWith('https://www.daniel-moquet.fr');
61
62    phoneMessageArea.innerHTML = "";
63    messagesArea.innerHTML = "";
64
65    let formIsValid = true;
66    if(nbSelectedProjects === 0 && isAllBrandWebsite) {
67        messagesArea.innerHTML = layout_message('Merci de sélectionner au moins un projet', 'error');
68        formIsValid = false;
69    }
70    const phoneRegex = prefixPhoneField.value === 'be' ? /^\d{9}$/ : /^\d{10}$/;
71
72    if(phoneField.value === "" || !phoneRegex.test(phoneField.value.replace(/\s+/g, ''))) {
73        phoneMessageArea.innerHTML = layout_message("Le numéro de téléphone renseigné n'est pas valide.", 'error');
74        formIsValid = false;
75    }
76
77    return formIsValid;
78}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.