https://youtu.be/l1dZ_xgqCsg


<script>const showThisFieldIf = {
  modelo: {
    seleccionaropciones: [3, 4], // Mantenimiento y Repuestos
  },
  version: {
    seleccionaropciones: [3, 4],
  },
  kilometraje: {
    seleccionaropciones: [3, 4],
  },
  patente: {
    seleccionaropciones: [3, 4],
  },
  chasis: {
    seleccionaropciones: [3, 4],
  },
};

function conditionalFormFieldFunc() {
  function testLogic() {
    for (const [conditionalInputID, condition] of Object.entries(showThisFieldIf)) {
      const conditionalInput = setInputsElemArray(conditionalInputID);
      let match = false; // Cambiar a `false` para permitir múltiples coincidencias
      for (const [conditionID, conditionValues] of Object.entries(condition)) {
        const inputs = setInputsElemArray(conditionID);
        const selectedInputs = [];

        inputs.forEach((input, i) => {
          if (input.checked) {
            selectedInputs.push(i);
          }
        });

        if (inputs[0].tagName === 'SELECT') {
          selectedInputs.push(inputs[0].selectedIndex);
        }

        const adjustedConditionValues = conditionValues.map(e => e - 1);
       
        // Verificar si al menos una opción seleccionada coincide con los valores esperados
        if (adjustedConditionValues.some(condition => selectedInputs.includes(condition))) {
          match = true;
        }
      }

      // Mostrar si hay coincidencia, ocultar en caso contrario
      conditionalInput.forEach(e => {
        e.closest('.elementor-field-group').style.display = match ? "block" : "none";
      });
    }
  }

  function setInputsElemArray(ID) {
    const selectors = `[name="form_fields[${ID}]"]`;
    let inputs = Array.from(document.querySelectorAll(selectors));
    if (!inputs.length) {
      inputs = Array.from(document.querySelectorAll(`[name="form_fields[${ID}][]"]`));
    }
    return inputs;
  }

  testLogic();

  /* Agregar event listeners */
  for (const [conditionalInputID, condition] of Object.entries(showThisFieldIf)) {
    for (const [conditionID, conditionValues] of Object.entries(condition)) {
      const inputs = setInputsElemArray(conditionID);
      inputs.forEach(input => {
        input.addEventListener('input', function () {
          testLogic();
        });
      });
    }
  }
}

document.addEventListener('DOMContentLoaded', conditionalFormFieldFunc);
jQuery(document).on('elementor/popup/show', (event, id, instance) => {
  conditionalFormFieldFunc();
});

</script>