Причина проблем, с которыми вы сталкиваетесь, заключается в том, что вы изменяете отображение ваших CreditCard
div и Banking
div на блокирование, но вы не изменяете их обратно на display: none
, если они не выбраны. Также вы должны добавить onload
слушателя, чтобы проверить, каково начальное значение вашего paymentOptions
раскрывающегося списка, чтобы затем изменить отображаемое значение ваших 2 делений.
window.onload = () => {
const paymentOptionsSelect = document.getElementById("paymentOptions");
const selectedOption = paymentOptionsSelect.options[paymentOptionsSelect.selectedIndex].value;
if (selectedOption == 'CreditCard') {
document.getElementById('CreditCard').style.display = 'block'
document.getElementById('Banking').style.display = 'none';
}
else {
document.getElementById('Banking').style.display = 'block';
document.getElementById('CreditCard').style.display = 'none'
}
};
Внимательно посмотрите на 2 добавленные строки в Ваш слушатель изменений:
document.getElementById('paymentOptions').onchange = function () {
if (this.value == 'CreditCard') {
document.getElementById('CreditCard').style.display = 'block'
document.getElementById('Banking').style.display = 'none'; // set back to display none when CreditCard is not selected.
} else {
document.getElementById('Banking').style.display = 'block';
document.getElementById('CreditCard').style.display = 'none' // set back to display none when Banking is not selected.
}
}
Удачи!