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:
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.
1. Buat sebuah fungsi bernama validateFormData yang menerima 1 argument objek dengan properti:
- firstName
- lastName
- city
- zipCode
- 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
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);
atau respon:
Jawaban
Hi @aiiaulia,
semoga membantu
semoga membantu
function validateFormData(obj) { const properties = ['firstName', 'lastName', 'city', 'zipCode'] const checkedInput = document.getElementById('input').checked properties.forEach((p) => { // 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 <input> 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' } }
terimakasih ka sebelumnya, sudah sy koreksi utk validate menjadi seperti iniΒ
tp utk submit masih error
if (isLength(obyek) == true && isNumber(obyek.zipCode) == true && checkboxIsChecked() == true) {return true;} else {return false;}
tp utk submit masih error
Login untuk gabung berdiskusi
Pertanyaan Lainnya
Top Kontributor
- @ahanafi
651 Kontribusi 396 Poin
- @dianarifr
642 Kontribusi 316 Poin
- @Nandar
628 Kontribusi 198 Poin
- @Saputroandhi
509 Kontribusi 162 Poin
- @Dodi Sitorus
412 Kontribusi 145 Poin