cari

Rumah  >  Soal Jawab  >  teks badan

Fungsi mengembalikan benar walaupun ia sepatutnya mengembalikan palsu

<p>Saya menggunakan NextJS untuk mencipta borang sebelah pelanggan. Saya cuba meletakkan pengesahan pada bahagian klien borang dan meletakkannya dalam fungsi yang berasingan, tetapi setiap kali saya menjalankan fungsi validateForm() ia kembali benar tanpa mengira input. Saya rasa seperti saya kehilangan sesuatu yang bodoh di sini, tetapi saya memerah otak saya dan tidak ke mana. Berikut ialah kodnya: </p> <pre class="brush:php;toolbar:false;">const [jobSubmission, setJobSubmission] = useState({}); pemegang fungsiTukar (e){ const jobInputName = e.target.name; const jobInputValue = e.target.value; const newJobSubmission = { ...penyerahan kerja, [jobInputName]: jobInputValue, } console.log(newJobSubmission) setJobSubmission(newJobSubmission) } fungsi validateForm (){ console.log("Pengesahan berjalan") if(jobSubmission.jobCategory == `Sila-Pilih` || jobSubmission.jobCategory === null){ alert("Sila buat pemilihan kategori pekerjaan") kembali palsu } jika (jobSubmission.salarRange !== null && jobSubmission.timeOfPayment === null){ alert("Sila pilih kekerapan pembayaran gaji atau alih keluar julat gaji"); kembali palsu } kembali benar } fungsi handleSubmission(){ const isReady = validateForm() console.log(isReady) jika (sedia === benar){ // Tambah UniqId const finalJobObject = { ...penyerahan kerja, jobId: uniqid() } sendJobToDB(finalJobObject) window.location = "/post-a-job/thank-you" } lain{ alert("Sila isi semua medan yang diperlukan") } }</pre> <p>Pada asasnya, saya ingin meletakkan semakan pengesahan dalam fungsi pengesahan yang berasingan dan sebenarnya mengembalikan palsu jika berlaku kesilapan. </p> <p>Saya telah cuba menukar cara boolean dijejaki tetapi ia sentiasa kembali benar. </p>
P粉514458863P粉514458863454 hari yang lalu486

membalas semua(1)saya akan balas

  • P粉682987577

    P粉6829875772023-08-17 10:50:37

    Mungkin disebabkan oleh penggunaan campuran =====. Saya syorkan mencuba kod berikut dahulu:

    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;
    }
    

    Jika masalah berterusan, saya syorkan anda menyemak objek jobSubmission dalam log konsol dan pastikan nilai yang anda semak adalah seperti yang diharapkan.

    balas
    0
  • Batalbalas