registration_button.disabled=[...document.querySelectorAll('input')].filter(i=>!(i.id=='id_m'||i.id=='id_f')).every(i=>i.classList.contains('success'));
а цвет добавь через css registration_button.disabled =
[...document.querySelectorAll('input')]
.every(i => i.classList.contains('success') || i.checked);
У всех input, которые не являются checkbox или radio, свойство checked должно быть false (судя по наблюдениям, проверил текстовые поля, с остальными думаю так же).
registration_button.disabled =
[...document.querySelectorAll('input:not(#id_m, #id_f)')]
.every(i=>i.classList.contains('success'));
Исключить ID можно и в селекторе. const inputs = document.querySelectorAll('.input');
const button = document.querySelector('#registration_button');
for (let i = 0; i < inputs.length; i++) {
if (inputs[i].id !== 'id_f' && inputs[i].id !== 'id_m') {
if (!inputs[i].classList.contains('success')) {
console.log(`%c ${inputs[i].outerHTML}`, 'color: red');
button.disabled = 'false';
button.style.background = 'gray';
break;
} else {
console.log(`%c ${inputs[i].outerHTML}`, 'color: blue');
button.disabled = 'true';
button.style.background = '#4070f7';
}
}
}