onBeforeSave error with onCustomValidation on onReady

Hello, I am new to the forum, but I have been using WiX Velo for 1 year already. After 2 days of reading on forum, it was impossible for me to find the solution to my code error.

Can you help me?

Context :
-Customer subscription form executed by a third party partner (restricted access)
-Three dataset:
Members/Customer/Partner

Wish :
-Check all the fields before sending the form
-Then return to another page with a timer

Fields to check:
-E-mail (with double verification)
-Switch
-Text

Script errors during publication:
-No text message if validation or error
-E-mail verification field does not appear

Prerequisites:
All data fields are connected to the dataset, including buttons (new / Send) + messages if error / validation

--------------- ERROR MESSAGE ------------------

--------------- THE PAGE ------------------


--------------- THE CODE ------------------
import wixData from “wix-data” ;
import wixUsers from “wix-users” ;
import { local } from “wix-storage” ;
import { doRegistration } from “backend/register” ;
import wixLocation from “wix-location” ;

$w . onReady ( function () {

const  validateEmail  = ( otherEmailElementId ) => ( value ,  reject ) => { 
    let  otherEmailElement  =  $w ( otherEmailElementId ); 
    if  ( value  ===  otherEmailElement.value ) { 
        otherEmailElement.validity.valid  =  **true** ; 
        otherEmailElement . resetValidityIndication (); 
        **return** ; 
    } 
    console . log ( "Email and Confirm Your Email fields do not match" ); 
    otherEmailElement.validity.valid  =  **false** ; 
    otherEmailElement . updateValidityIndication (); 
    reject ( "Email and Confirm Email fields do not match" ); 
}; 
$w ( "#emailClientConfirm" ). onCustomValidation ( validateEmail ( "#emailClient" )); 
$w ( "#emailClient" ). onCustomValidation ( validateEmail ( "#emailConfirmInput" )); 

$w ( "#datasetClient" ). onBeforeSave (() => { 
    if  (!( $w ( "#ageAppareil" ). checked  &&  $w ( "#conformiteAppareil" ). checked  && 
            $w ( "#dida" ). checked  && 
            $w ( "#prenomClient" ). valid  &&  $w ( "#nomClient" ). valid  &&  $w ( "#emailClient" ). valid  && 
            $w ( "#telephoneClient" ). valid  &&  $w ( "#addresseClient" ). valid  && 
            $w ( "#cga" ). checked  &&  $w ( "#rgpd" ). checked  &&  $w ( "#informations" ). checked  &&  $w ( "#politiqueConfidentialite" ). checked )) { 

        let  validationMessage  =  "" ; 

        if  (! $w ( "#ageAppareil" ). checked  && ! $w ( "#conformiteAppareil" ). checked ) 
            validationMessage  +=  "Veuillez valider la conformité âge/état de/des appareil.s\n" ; 

        if  (! $w ( "#dida" ). checked ) 
            validationMessage  +=  "Veuillez confirmer la connaissance du DIPA\n" ; 

        if  (! $w ( "#prenomClient" ). valid  && ! $w ( "#nomClient" ). valid ) 
            validationMessage  +=  "Veuillez entrer votre nom/prénom\n" ; 

        if  (! $w ( "#emailClient" ). valid ) { 
            if  (! $w ( "#emailClient" ). value ) 
                validationMessage  +=  "Veuillez entrer votre adresse email\n" ; 
            **else if**  ( $w ( "#emailClient" ). value  !==  $w ( "#emailClientConfirm" ). value ) { 
                validationMessage  +=  "Les adresses emails ne correspondent pas\n" ; 
            } 
        } 

        if  (! $w ( "#telephoneClient" ). valid ) 
            validationMessage  +=  "Veuillez entrer un numéro de téléphone valide\n" ; 

        if  (! $w ( "#addresseClient" ). valid ) 
            validationMessage  +=  "Veuillez entrer une adresse valide\n" ; 

        if  (! $w ( "#cga" ). checked  && ! $w ( "#rgpd" ). checked  && ! $w ( "#informations" ). checked  && ! $w ( "#politiqueConfidentialite" ). checked ) 
            validationMessage  +=  "Veuillez vérifier avoir bien pris connaissance et accepté les Termes et Conditions\n" ; 

        $w ( "#textError" ). text  =  validationMessage ; 
        $w ( "#textError" ). show (); 
    }  **else**  { 
        $w ( "#textError" ). hide (); 
        $w ( "#textValidation" ). show (); 
        $w ( "#datasetClient" ). onAfterSave (() => { 
            setTimeout (() => { 
                wixLocation . to ( "https://www.mobisure.fr/mes-clients" ); 
            },  10000 ); 
        }); 
    } 

}); 

// Filter Partner connected 

let  user  =  wixUsers.currentUser ; 
let  userId  =  user.id ;  // "r5cme-6fem-485j-djre-4844c49" 
user . getEmail () 
    . then (( email ) => { 
        let  userEmail  =  email ;  // "user@something.com" 
        console . log ( userEmail ); 
        console . log ( userId ); 

        $w ( "#datasetPartenaire" ). setFilter ( wixData.filter () 
            . eq ( "email" ,  userEmail ) 
        ); 
    }); 

$w ( "#mobiriscNiveau" ). value  =  "" ; 
$w ( "#telephoneClient" ). value  =  $w ( "#indicatifTelephoneClient" ). value ; 

// Customer Register 

$w ( "#buttonSubmit" ). onClick ( function  () { 
    let  email  =  $w ( "#emailClient" ). value ; 
    let  password  =  $w ( "#passwordClient" ). value ; 
    let  civilite  =  $w ( "#civiliteClient" ). value ; 
    let  lastName  =  $w ( "#nomClient" ). value ; 
    let  firstName  =  $w ( "#prenomClient" ). value ; 
    let  language  =  "fr" ; 
    let  nickname  =  $w ( "#civiliteClient" ). value  +  " "  +  $w ( "#nomClient" ). value  +  " "  +  $w ( "#prenomClient" ). value ; 
    let  phones  =  $w ( "#telephoneClient" ). value ; 
    let  adress  =  $w ( "#addresseClient" ). value ; 
    let  titulairecompte  =  $w ( "#titulaireCompteClient" ). value ; 
    let  iban  =  $w ( "#ibanClient" ). value ; 
    let  bic  =  $w ( "#bicClient" ). value ; 
    let  codemagasin  =  $w ( "#codeMagasin" ). value ; 

    doRegistration ( email ,  password ,  firstName ,  lastName ,  phones ,  language ) 
        . then (() => { 
            console . log ( "Confirmation email sent." ); 
        }); 
}); 

// Date Picker Legal Age 

let  today  =  **new**  Date (); 
let  startDate  =  **new**  Date ( today ); 
startDate . setMonth ( startDate.getMonth () -  1188 );  // Start Date -99 years from today // 

let  endDate  =  **new**  Date ( today ); 
endDate . setMonth ( endDate.getMonth () -  216 );  // End Date -18 years from today // 
// Set min & max dates // 

$w ( "#dateNaissanceClient" ). value  =  endDate ; 
$w ( "#dateNaissanceClient" ). minDate  =  startDate ; 
$w ( "#dateNaissanceClient" ). maxDate  =  endDate ; 

// Plafond de réparation 
$w ( "#plafondContrat" ). value  =  "0/3" ; 

});

// Déjà Client

/////////////////////

// New Customer + Infos Partners

export function button237_click ( event ) {
$w ( “#loader” ). hide ();
$w ( “#columnStrip37” ). expand ();
$w ( “#button237” ). hide ();

let  user  =  wixUsers.currentUser ; 
let  userId  =  user.id ;  // "r5cme-6fem-485j-djre-4844c49" 

user . getEmail () 
    . then (( email ) => { 
        let  userEmail  =  email ;  // "user@something.com" 
        console . log ( userEmail ); 
        console . log ( userId ); 

        local . setItem ( "searchPartenaire" ,  userEmail ); 
        wixData . query ( "multiStepRegistrationForm29" )  //Trouve les infos du partenaire 
            . eq ( "email" ,  userEmail ) 
            . find () 
            . then (( results ) => { 
                if  ( results.items.length  >  0 ) { 
                    console . log ( "Items-found" ) 
                    let  Item  =  results.items [ 0 ]; 
                    $w ( "#datasetPartenaire" ). setFilter ( wixData.filter ()  // Filtre le partenaire connecté 
                        . eq ( "email" ,  userEmail )); { 
                        $w ( "#emailPartenaire" ). value  =  Item . email ; 
                        $w ( "#codeMagasin" ). value  =  Item . codeMagasin ; 
                        $w ( "#formule" ). value  =  Item . copieDeTypeDePartenaire ; 
                    } 
                }  **else**  { 
                    $w ( "#codeMagasin" ). value  =  **null** ; 
                    $w ( "#emailPartenaire" ). value  =  **null** ; 
                    $w ( "#formule" ). value  =  **null** ; 
                } 
            }); 
    }); 

}

// Vérification E-mail

export function buttonVerifEmailClient_click ( event ) {
let emailVerifNew = $w ( “#emailClient” ). value ;
wixData . query ( “Members/PrivateMembersData” )
. eq ( “loginEmail” , emailVerifNew )
. find ()
. then (( results ) => {
if ( results.items.length > 0 ) {
$w ( “#validMessageNew” ). show ();
$w ( “#emailClientConfirm” ). show ();
} else {
$w ( “#errorMessageNew” ). show ();
$w ( “#emailClientConfirm” ). hide ();
}
});
}

export function emailClient_change ( event ) {
$w ( “#validMessageNew” ). hide ();
$w ( “#errorMessageNew” ). hide ();
$w ( “#emailClientConfirm” ). hide ();
}

/////////// …

------------- Thank’s :smiley: