Форма и кнопка:
const form = document.querySelector('.container form');
const button = document.querySelector('.container button');
Слушаем на форме событие input, проверяем у текстовых полей значения, а у выпадающих списков индексы выбранных пунктов:
form.addEventListener('input', e => {
button.disabled = ![
[ 'input', el => el.value /* !== '' */ ],
[ 'select', el => el.selectedIndex /* !== 0 */ ],
].every(([ selector, validator ]) => {
return Array.prototype.every.call(
e.currentTarget.querySelectorAll(selector),
validator
);
});
});
Или, добавляем input'ам и select'ам атрибут required, первым option'ам в качестве значений устанавливаем пустые строки - тогда можно будет воспользоваться встроенной проверкой корректности заполнения формы:
form.addEventListener('input', function() {
button.toggleAttribute('disabled', !this.checkValidity());
});