La fonction renvoie vrai même si elle devrait renvoyer faux
P粉514458863
P粉514458863 2023-08-16 19:57:43
0
1
536
<p>J'utilise NextJS pour créer un formulaire côté client. J'essaie de placer la validation du côté client du formulaire et de la placer dans une fonction distincte, mais chaque fois que j'exécute la fonction validateForm(), elle renvoie true quelle que soit l'entrée. J'ai l'impression de rater quelque chose de stupide ici, mais je me creuse la tête et je n'arrive à rien. Voici le code : </p> <pre class="brush:php;toolbar:false;">const [jobSubmission, setJobSubmission] = useState({}); fonction handleChange (e){ const jobInputName = e.target.name; const jobInputValue = e.target.value; const newJobSubmission = { ...soumission d'emploi, [nomJobInput] : valeurJobInput, } console.log (newJobSubmission) setJobSubmission(newJobSubmission) } fonction validateForm (){ console.log("Validation en cours") if(jobSubmission.jobCategory == `Veuillez sélectionner` || jobSubmission.jobCategory === null){ alert("Veuillez sélectionner la catégorie d'emploi") retourner faux } if (jobSubmission.salarRange !== null && jobSubmission.timeOfPayment === null){ alert("Veuillez sélectionner la fréquence de paiement du salaire ou supprimer l'échelle salariale"); retourner faux } retourner vrai } fonction handleSubmission(){ const isReady = validerForm() console.log(isReady) si (isReady === vrai){ // Ajouter un identifiant unique const finalJobObject = { ...soumission d'emploi, ID de travail : uniqid() } envoyerJobToDB (finalJobObject) window.location = "/post-a-job/merci" } autre{ alert("Veuillez remplir tous les champs obligatoires") } }</pré> <p>Fondamentalement, je souhaite placer le contrôle de validation dans une fonction de validation distincte et renvoyer false si quelque chose ne va pas. </p> <p>J'ai essayé de changer la façon dont le booléen est suivi, mais il renvoie toujours vrai. </p>
P粉514458863
P粉514458863

répondre à tous(1)
P粉682987577

Probablement causé par une utilisation mixte de =====. Je vous recommande d'essayer d'abord le code suivant :

function validateForm() {
    console.log("Validation running");

    if (jobSubmission.jobCategory === 'Please-Select' || jobSubmission.jobCategory === undefined) {
        alert("Please make a job category selection");
        return false;
    }

    if (jobSubmission.salaryRange !== null && jobSubmission.timeOfPayment === undefined) {
        alert("Please select the frequency of salary payment or remove the salary range");
        return false;
    }

    return true;
}

Si le problème persiste, je vous recommande de vérifier l'objet jobSubmission dans le journal de la console et de vous assurer que la valeur que vous vérifiez est celle attendue.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal