Skillpath Web Dev No 6-10

function handleGetFormData() {
const name = document.getElementById(‘name’).value;
const email = document.getElementById(‘email’).value;
const city = document.getElementById(‘city’).value;
const zipCode = document.getElementById(‘zip-code’).value;
const status = document.getElementById(‘status’).checked;
return {
name,
city,
email,
zipCode,
status
};
}

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

function checkboxIsChecked() {
return handleGetFormData().status;
}

function validateFormData(formData) {
if (!formData) return false;
if (!isNumber(formData.zipCode)) return false;
if (!formData.status) return false;

return true;

}

function submit(event) {
event.preventDefault();
const formData = handleGetFormData();
const warningDiv = document.getElementById(‘warning’);
if (!validateFormData(formData)) {
warningDiv.textContent = “Periksa form anda sekali lagi.”;
} else {
warningDiv.textContent = “”;
}
}

const form = document.getElementById(‘mental-health-form’);
form.addEventListener(‘submit’, submit);

Permisi kak, tu kodingan js saya pas ditekan periksa salah terus no 6-10 saya gak tau apa penyebabnya, mohon bantuannya.

Permasalahaan saya sudah selesai🙏

Nice @Sarah_Desmarina ,

Hanya sehari langsung bisa yaa. Lanjutkan :rocket:

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

Hi kak,

boleh lihat seluruh kodenya tidak ya? biar kami coba bantu

function handleGetFormData() {
const name = document.getElementById(‘name’).value;
const email = document.getElementById(‘email’).value;
const city = document.getElementById(‘city’).value;
const zipCode = document.getElementById(‘zip-code’).value;
const status = document.getElementById(‘status’).checked;

return {
    name,
    email,
    city,
    zipCode,
    status
};

}

function isNumber(string) {
return !isNaN(string) && string.trim() !== ‘’;
}

function validateEmail(email) {
const re = /^[^\s@]+@[^\s@]+.[^\s@]+$/;
return re.test(email);
}

function checkboxIsChecked() {
return document.getElementById(‘status’).checked;
}

function validateFormData(formData) {
return (
formData !== null &&
isNumber(formData.zipCode) &&
checkboxIsChecked()
);
}

function validateFullFormData(formData) {
return (
formData.name.trim() !== ‘’ &&
formData.city.trim() !== ‘’ &&
validateEmail(formData.email) &&
isNumber(formData.zipCode) &&
checkboxIsChecked()
);
}

function submit(event) {
event.preventDefault();

const formData = handleGetFormData();
const warning = document.getElementById('warning');

validateFormData(formData);

if (!validateFullFormData(formData)) {
    warning.textContent = 'Periksa form anda sekali lagi';
} else {
    warning.textContent = '';
    console.log('Data form valid:', formData);
}

}

document.getElementById(‘dataForm’).addEventListener(‘submit’, submit);

Berikut yang bisa kakak fix yaa:

  1. Hapus bagian document.getElementById('dataForm').addEventListener('submit', submit); karena belum dibutuhkan yaa
  2. Pada bagian return function isNumber, kakak bisa langsung seperti ini aja yaa return !isNaN(string)… tidak perlu gunakan trim lagi
  3. Untuk function submit… coba hapus parameter “event” beserta penggunaan nya (event.preventDefault();).

Silahkan di coba ya kak. Kabari lagi jika masih bingung atau kesulitan

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

Hi kak @Cindy_Ninda ,

Boleh di cek lagi yaa. Admin sudah bantu perbaiki struktur kode html kakak sehingga sekarang seharusnya sudah sesuai seperti ekspektasi.

Kalau masih kebingungan dan belum bisa… kabari lagi ya kak :wink:

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

Hi kak @Cindy_Ninda ,

Boleh di cek kembali yaa. Setelah kami cek, semuanya aman kok di tempat kakak.

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)