Fungsi mengembalikan benar walaupun ia sepatutnya mengembalikan palsu
P粉514458863
P粉514458863 2023-08-16 19:57:43
0
1
507
<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粉514458863
P粉514458863

membalas semua(1)
P粉682987577

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan