Mengakses array di dalam objek yang ada di dalam function

Ada yg bisa bantu mengenai soal dibawah? Yang bermasalah di fungsi validateFormData() dan submit()

1. Buat sebuah fungsi bernama validateFormData yang menerima 1 argument objek dengan properti:

  • firstName
  • lastName
  • city
  • zipCode

Kembalikan true jika:

  • objek mempunyai semua properti di atas, dan
  • masing-masing properti di objek mempunyai nilai, dan
  • nilai dari properti zipCode harus dalam bentuk angka, dan
  • attribute checked dari <input> dengan id check harus true

Jika tidak, kembalikan false

Hint: Gunakan fungsi isLength, isNumber dan checkboxIsChecked

2. Buat sebuah fungsi bernama submit dan panggil fungsi ini ketika <form> disubmit.

Panggil fungsi validateFormData di fungsi submit tersebut, dan apabila validateFormData mengembalikan nilai false, maka fungsi submit akan menampilkan teks Periksa form anda sekali lagi di <div> dengan id warning. Jika validateFormData mengembalikan nilai true, maka teks di dalam <div> dengan id warning akan dihapus.

// Tambahkan kode JavaScript kalian di file ini

//let arr = [];
let pesan = document.getElementById("warning");
let tombol = document.getElementById("submit-form-button");

function getFormData() {
    let obj = {
        firstName: document.getElementById("first-name").value,
        lastName: document.getElementById("last-name").value,
        city: document.getElementById("city").value,
        zipCode: document.getElementById("zip-code").value,
        check: document.getElementById("check").checked
    }
    return obj;
}

function isNumber(string) {
    return !isNaN(string);
}

function isLength(string, integer) {
    return string.length == integer;
}

function checkboxIsChecked() {
    return check.checked;
}

function validateFormData() {
    //const object = {
    //    firstName: isLength,
    //    lastName: isLength,
    //    city: isLength,
    //    zipCode: isLength
    //}
    //arr.push(object);

    //const arr = ['firstName','lastName','city','zipCode'];
    //const zip = object.zipCode;

    let obyek = {
        arr: ['firstName', 'lastName', 'city', 'zipCode']
    }

    if (isLength(obyek, 4) == true && isNumber(arr[3]) == true && checkboxIsChecked() == true) {
        return true;
    } else {
        return false;
    }
}

function resetForm() {
    document.forms[0].reset();
}
//submitFormButton.onclick = resetForm();

function submit() {
    if (validateFormData() == false) {
        pesan.innerHTML = "Periksa form anda sekali lagi";
    } else {
        pesan.innerHTML = "";
    }
}

//document.getElementById("submit-form-button").addEventListener("click", obj);
avatar aiiaulia
@aiiaulia

5 Kontribusi 4 Poin

Diperbarui 3 tahun yang lalu

2 Jawaban:

<div>Hi <a href="https://sekolahkoding.com/user/aiiaulia">@aiiaulia</a>,<br>semoga membantu</div><pre>function validateFormData(obj) { const properties = ['firstName', 'lastName', 'city', 'zipCode'] const checkedInput = document.getElementById('input').checked

properties.forEach((p) =&gt; { // objek mempunyai semua properti di atas if (!(p in obj)) { return false }

// masing-masing properti di objek mempunyai nilai
if (obj[p] === undefined) {
	return false
}

// nilai dari properti zipCode harus dalam bentuk angka
if (isNaN(obj[p])) {
	return false
}

})

// attribute checked dari &lt;input&gt; dengan id check harus true if (!checkedInput) { return false }

return true }

function submit() { const obj = {} // ini terserah ambil dari mana let message = ''

if (!validateFormData(obj)) { message = 'Periksa form anda sekali lagi' } }</pre>

avatar apake1
@apake1

106 Kontribusi 55 Poin

Dipost 3 tahun yang lalu

<div>terimakasih ka sebelumnya, sudah sy koreksi utk validate menjadi seperti ini&nbsp;<br><br></div><pre>if (isLength(obyek) == true &amp;&amp; isNumber(obyek.zipCode) == true &amp;&amp; checkboxIsChecked() == true) {return true;} else {return false;}</pre><div><br>tp utk submit masih error</div>

avatar aiiaulia
@aiiaulia

5 Kontribusi 4 Poin

Dipost 3 tahun yang lalu

Login untuk ikut Jawaban