!
Мыслитель
(5095)
1 год назад
Конечно, вот код, который решает вашу задачу:
javascript
Copy code
const registrationBtn = document.querySelector('#registration_button');
const inputs = document.querySelectorAll('input:not(#id_m):not(#id_f)');
const maleRadio = document.querySelector('#id_m');
const femaleRadio = document.querySelector('#id_f');
function checkInputs() {
let allInputsValid = true;
inputs.forEach(input => {
if (!input.classList.contains('success')) {
allInputsValid = false;
}
});
return allInputsValid && (maleRadio.checked || femaleRadio.checked);
}
function updateRegistrationBtn() {
if (checkInputs()) {
registrationBtn.disabled = true;
registrationBtn.style.backgroundColor = '#4070F7';
} else {
registrationBtn.disabled = false;
registrationBtn.style.backgroundColor = '#CCCCCC';
}
}
inputs.forEach(input => {
input.addEventListener('input', updateRegistrationBtn);
});
maleRadio.addEventListener('change', updateRegistrationBtn);
femaleRadio.addEventListener('change', updateRegistrationBtn);
Как это работает:
Мы находим элементы кнопки и всех input полей, кроме тех, что имеют id_m или id_f.
Мы определяем функцию checkInputs, которая проверяет, имеют ли все input поля класс success и выбрано ли одно из radio полей.
Мы определяем функцию updateRegistrationBtn, которая вызывает checkInputs и изменяет состояние кнопки в соответствии с результатом проверки.
Мы добавляем обработчики событий на все input поля и на оба radio поля, чтобы каждый раз, когда пользователь вводит данные или выбирает один из полов, функция updateRegistrationBtn вызывалась и обновляла состояние кнопки.
Надеюсь, это помогло!