let showThisFieldIf = {
ime_roditelj: {
godine: ["Ne"], // Ako je korisnik mlađi od 18 godina (odabrao "Ne")
},
email_roditelj: {
godine: ["Ne"], // Ako je korisnik mlađi od 18 godina (odabrao "Ne")
},
mobitel_roditelj: {
godine: ["Ne"], // Ako je korisnik mlađi od 18 godina (odabrao "Ne")
},
}
document.addEventListener('DOMContentLoaded', conditionalFormFieldFunc);
document.addEventListener('DOMContentLoaded', function() {
jQuery(document).on('elementor/popup/show', (event, id, instance) => {
conditionalFormFieldFunc();
});
});
function conditionalFormFieldFunc() {
function testLogic() {
let godineInput = document.querySelector('[name="form_fields[godine]"]:checked'); // Dohvati odabrani radio button (Da/Ne)
if (!godineInput) return;
let godineValue = godineInput.value; // Dobij vrijednost odabranog radio buttona
// Ako je korisnik mlađi od 18 godina (odabrao "Ne")
if (godineValue === "Ne") {
// Prikaži i postavi obaveznost za polja roditelja
for (const [conditionalInputID, condition] of Object.entries(showThisFieldIf)) {
let conditionalInput = setInputsElemArray(conditionalInputID);
conditionalInput.forEach(e => {
e.closest('.elementor-field-group').style.display = "block"; // Prikaži polje
e.setAttribute('required', 'required'); // Postavi kao obavezno
});
}
} else {
// Sakrij i ukloni obaveznost za polja roditelja (odabrano "Da")
for (const [conditionalInputID, condition] of Object.entries(showThisFieldIf)) {
let conditionalInput = setInputsElemArray(conditionalInputID);
conditionalInput.forEach(e => {
e.closest('.elementor-field-group').style.display = "none"; // Sakrij polje
e.removeAttribute('required'); // Ukloni obaveznost
});
}
}
}
testLogic();
/* Dodaj event listener za radio dugmad koja sluša promjenu */
let godineInputs = document.querySelectorAll('[name="form_fields[godine]"]');
godineInputs.forEach(input => {
input.addEventListener('change', function() {
testLogic();
});
});
function setInputsElemArray(ID) {
let selectors = `[name="form_fields[${ID}]"]`;
let inputs = Array.from(document.querySelectorAll(selectors));
if (!inputs.length) {
selectors = `[name="form_fields[${ID}][]"]`;
inputs = Array.from(document.querySelectorAll(selectors));
}
return inputs;
}
}
document.addEventListener('DOMContentLoaded', function() {
// Dohvati radio dugmad za "Imam više od 18 godina"
const godineInputs = document.querySelectorAll('[name="form_fields[godine]"]'); // Radio dugmad za Da/Ne
// Dohvati elemente za polja roditelja
const parentFields = document.querySelectorAll('.elementor-field-group-ime_roditelj, .elementor-field-group-email_roditelj, .elementor-field-group-mobitel_roditelj');
// Funkcija koja uvjetno prikazuje ili skriva polja roditelja
function toggleParentFields() {
let selectedValue = document.querySelector('[name="form_fields[godine]"]:checked').value; // Dobij odabranu vrijednost (Da/Ne)
if (selectedValue === "Ne") {
// Ako je odabrano "Ne" (mlađi od 18 godina)
parentFields.forEach(field => {
field.style.display = 'block'; // Prikaži polja roditelja
field.querySelector('input').setAttribute('required', 'required'); // Postavi kao obavezna
});
} else {
// Ako je odabrano "Da" (18 ili više godina)
parentFields.forEach(field => {
field.style.display = 'none'; // Sakrij polja roditelja
field.querySelector('input').removeAttribute('required'); // Ukloni obaveznost
});
}
}
// Dodaj event listener za promjenu odabira radio dugmadi
godineInputs.forEach(input => {
input.addEventListener('change', toggleParentFields);
});
// Pokreni funkciju odmah nakon učitavanja stranice kako bi se ispravno postavila polja
toggleParentFields();
});