Javascript в IE в Windows 7/10 не работает должным образом - PullRequest
1 голос
/ 11 января 2020

Так что по какой-то причине JavaScript, который я использую, не работает на IE - есть ошибки, на которые я укажу ниже. Если кто-то знает что-нибудь еще, что я могу попробовать, или знает, как я могу манипулировать кодом, чтобы сделать его более IE дружественным, я был бы очень признателен.

enter image description here

enter image description here

Вот шаги, которые я предпринял:
- Используйте https://babeljs.io/ для преобразования всей страницы в ES2015.
- Добавлено тег сценария polyfill из https://polyfill.io/

Множество кода ниже (Весь файл общего назначения. js, который я уже преобразовал с помощью Babel ( Пожалуйста, дайте мне знать, если вы хотите, чтобы я загрузил исходный общий файл. js file )):

Все, что ниже rtd3Confirmation Функция должна быть:

for (var inputElement of rtd3ChangeClass) {
    inputElement.addEventListener('change', rtd3Confirmation);
}

, но это было до преобразования Babel ит.

"use strict";

// Form wrapper variables
var contactFormID = document.getElementById('contactForm');
var formWrapperSpecific = document.getElementById('form-wrapper-specific');
var formWrapperCertainSelection = document.getElementById('form-wrapper-certain-selection');
var formWrapperCertain = document.getElementById('form-wrapper-certain');
var formWrapperConfirm = document.getElementById('rtd3Confirm'); // Alert variables

var stateAlertID = document.getElementById('stateWarning');
var stateQuery = document.querySelector('#stateWarning b#stateName');
var resident = document.getElementById('resident');
var is_submitted = document.getElementsByClassName('is-submitted'); // Right to Know variables

var rtk5_selection = document.getElementById('rtk5');
var rtk5declaration = document.getElementById('rtk5Declaration'); // Right to Delete variables

var rtdChange = document.getElementById('rtd3');
var rtd3ChangeClass = document.querySelectorAll(".rtd3_change"); // Array for states

var states = []; // Once the DOM has loaded, call functions

document.addEventListener('DOMContentLoaded', function () {
    formHandler();
    residentAlert();
    rtdCheckboxSelection();
    rtd3Confirmation();
    rtk5Declaration();
    get_states();
}); // Show/hide form depending if state is included in array on dropdown selection

function formHandler() {
    contactFormID.style.display = 'block';
    if (resident == null) return;
    if (!states.includes(resident.value)) contactFormID.style.display = 'none';
    resident.addEventListener('change', formHandler);
} // Show/hide state alert for non-residents


function residentAlert() {
    if (resident !== null) {
        resident.addEventListener('change', function () {
            // If value in states array is true, show the form
            if (!states.includes(resident.value)) {
                stateAlertID.style.display = 'block';
                stateQuery.textContent = resident.options[resident.selectedIndex].text;
            } else {
                stateAlertID.style.display = 'none';
            }
        });
    }
} // Show states dropdown depending on PHP variables


function get_states() {
    var data_states = contactFormID.getAttribute('data-states').match(/\w{1,}/g);
    data_states.forEach(function (state, i) {
        return states[i] = state;
    });
} // If RTK5 is selected, show declaration field and set required tag


function rtk5Declaration() {
    if (!rtk5_selection.checked) {
        formWrapperSpecific.style.display = 'none';
        rtk5declaration.removeAttribute('required');
    } else {
        formWrapperSpecific.style.display = '';
        rtk5declaration.setAttribute('required', 'required');
    }
}

rtk5_selection.addEventListener('change', rtk5Declaration); // If RTD3 is selected, show/hide more checkboxes

function rtdCheckboxSelection() {
    formWrapperCertain.style.display = rtdChange.checked ? '' : 'none';
    document.querySelectorAll('[name="rtd[checked]"]').forEach(function (r) {
        return r.addEventListener('change', rtdCheckboxSelection);
    });
} // If at least one checkbox inside rtd3 is checked, show confirmation and make required


function rtd3Confirmation() {
    if (document.querySelectorAll('.rtd3_change:checked').length) {
        formWrapperCertainSelection.style.display = '';
        formWrapperConfirm.required = true;
    } else {
        formWrapperCertainSelection.style.display = 'none';
        formWrapperConfirm.required = false;
    }
}

var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;

try {
    for (var _iterator = rtd3ChangeClass[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
        var inputElement = _step.value;
        inputElement.addEventListener('change', rtd3Confirmation);
    }
} catch (err) {
    _didIteratorError = true;
    _iteratorError = err;
} finally {
    try {
        if (!_iteratorNormalCompletion && _iterator.return != null) {
            _iterator.return();
        }
    } finally {
        if (_didIteratorError) {
            throw _iteratorError;
        }
    }
}
...