Bitte beachte, dass sich diese Dokumentation auf die neuste Version dieser Erweiterung bezieht. Wenn eine ältere Version eingesetzt wird, kann diese abweichen. Die jeweils passende Dokumentation befindet sich im Dokumentation-Verzeichnis der Erweiterung.
JavaScript Funktionalität überschreiben
Sollte der Fall auftreten, dass ein Abschnitt des JavaScripts angepasst werden muss, so kann die entsprechende Methode wie folgt überschrieben werden:
DoubleOptinDownload.showLoadingInfo = function (formUid) {
    document.querySelectorAll(`#download-form-${formUid} input`).forEach(el => el.disabled = true);
    document.querySelectorAll(`#download-form-${formUid} button`).forEach(el => el.disabled = true);
};
DoubleOptinDownload.hideLoadingInfo = function () {
    document.querySelectorAll('.tx-double-optin-download input').forEach(el => el.disabled = false);
    document.querySelectorAll('.tx-double-optin-download button').forEach(el => el.disabled = false);
};
DoubleOptinDownload.refreshFormFeedback = function (response) {
    Object.keys(response.form).forEach(key => {
        const field = document.getElementById(`download-${key}-${response.uid}`);
        if (!field) return;
        const wrapper = field.closest('.form-group');
        const feedback = wrapper && wrapper.querySelector('.invalid-feedback');
        field.classList.remove('is-invalid', 'is-valid');
        if (response.form[key].isValid) {
            if (feedback) feedback.innerHTML = '';
            field.classList.add('is-valid');
        } else {
            if (feedback) feedback.innerHTML = response.form[key].error;
            field.classList.add('is-invalid');
        }
    });
};
DoubleOptinDownload.clearForm = function (response) {
    Object.keys(response.form).forEach(function(key) {
        const field = document.getElementById(`download-${key}-${response.uid}`);
        if (!field) {
            return;
        }
        const type = field.type;
        const node = field.nodeName;
        if (type === 'text' || type === 'tel' || type === 'email') {
            field.value = '';
            field.classList.remove('is-valid');
        }
        else if (type === 'checkbox') {
            field.checked = false;
            field.classList.remove('is-valid');
        }
        else if (node === 'SELECT') {
            field.selectedIndex = 0;
            field.classList.remove('is-valid');
        }
    });
};