Skip to content

Instantly share code, notes, and snippets.

@camaleaun
Last active October 4, 2021 13:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save camaleaun/7f5f4bfdaf54f8b428d43e94ef194d6c to your computer and use it in GitHub Desktop.
Save camaleaun/7f5f4bfdaf54f8b428d43e94ef194d6c to your computer and use it in GitHub Desktop.
Variations script
window.onload = function () {
const variation1 = document.getElementById( 'variation_1' );
const variation2 = document.getElementById( 'variation_2' );
const variation3 = document.getElementById( 'variation_3' );
const withColor = [
'Impressão Vinil',
'Placa Decorativa',
'Impressão Canvas',
'Borda Infinita',
];
const withoutColor = [
'Moldura Padrão',
'Moldura Padrão c/ Vidro',
'Moldura Filete',
'Moldura Premium c/ Vidro',
'Moldura Flutuante',
];
const withoutRaw = [ 'Moldura Padrão', 'Moldura Padrão c/ Vidro' ];
const raw = variation3.querySelector( '[value="Cru"]' );
function checkVariations() {
if ( withColor.includes( variation1.value ) ) {
if ( ! variation3.querySelector( '[value=---]' ) ) {
const optionNull = document.createElement( 'option' );
optionNull.value = '---';
optionNull.textContent = '---';
variation3.insertBefore(
optionNull,
variation3.querySelector( 'option' )
);
}
variation3.value = '---';
variation3.setAttribute( 'disabled', 'disabled' );
} else if ( withoutColor.includes( variation1.value ) ) {
variation3.removeAttribute( 'disabled' );
const optionNull = variation3.querySelector( '[value=---]' );
if ( optionNull ) {
optionNull.remove();
}
}
if ( raw && withoutRaw.includes( variation1.value ) ) {
raw.setAttribute( 'disabled', 'disabled' );
} else {
raw.removeAttribute( 'disabled' );
}
}
checkVariations();
variation1.addEventListener( 'change', checkVariations );
variation2.addEventListener( 'change', checkVariations );
variation3.addEventListener( 'change', checkVariations );
};
window.onload=function(){const a=document.getElementById("variation_1"),e=document.getElementById("variation_2"),o=document.getElementById("variation_3"),d=["Impressão Vinil","Placa Decorativa","Impressão Canvas","Borda Infinita"],r=["Moldura Padrão","Moldura Padrão c/ Vidro","Moldura Filete","Moldura Premium c/ Vidro","Moldura Flutuante"],n=["Moldura Padrão","Moldura Padrão c/ Vidro"],i=o.querySelector('[value="Cru"]');function t(){if(d.includes(a.value)){if(!o.querySelector("[value=---]")){const e=document.createElement("option");e.value="---",e.textContent="---",o.insertBefore(e,o.querySelector("option"))}o.value="---",o.setAttribute("disabled","disabled")}else if(r.includes(a.value)){o.removeAttribute("disabled");const t=o.querySelector("[value=---]");t&&t.remove()}i&&n.includes(a.value)?i.setAttribute("disabled","disabled"):i.removeAttribute("disabled")}t(),a.addEventListener("change",t),e.addEventListener("change",t),o.addEventListener("change",t)};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment