squadbrodyaga
@squadbrodyaga
帆は風を変えた

Как сделать заблокированный button если Input пустой?

Нужен скрипт, из-за которого кнопка будет disabled, если все три поля input будут пустые и наоборот, если все поля заполнены, то кнопка станет enabled. У меня получилось, но но я случайно удалил весь свой код.

Раньше мой код для одного поля выглядел примерно так, но этот код не работает:

let mail = document.querySelector("#email");
let button = document.querySelector("#button");

mail.addEventListener("#email", ButtonED);

function ButtonED(){
	if (mail.value == ""){
		button.disabled = true;
	} else {
		button.disabled = false;
	}
}
ButtonED()
  • Вопрос задан
  • 2516 просмотров
Решения вопроса 2
wapster92
@wapster92 Куратор тега JavaScript
"#email"
что это за событие такое?
let mail = document.querySelector("#email");
let button = document.querySelector("#button");

mail.addEventListener("input", ButtonED);

function ButtonED(){
  if (mail.value == ""){
    button.disabled = true;
  } else {
    button.disabled = false;
  }
}
ButtonED()
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
кнопка будет disabled, если все три поля input будут пустые и наоборот, если все поля заполнены, то кнопка станет enabled

А если поля заполнены, но не все - одно или два? Это получается какое-то третье состояние, которого у кнопки быть не может. Вам следует больше внимания уделять формулировкам стоящих перед вами задач. "Наоборот" для "все пустые" - это "хотя бы одно заполнено":

const button = document.querySelector('селектор кнопки');
const inputs = [...document.querySelectorAll('селектор инпутов')];
const onInput = () => button.disabled = inputs.every(n => !n.value);
inputs.forEach(n => n.addEventListener('input', onInput));
onInput();

И, аналогично, для "все заполнены" - "хотя бы одно пустое", вместо every будет some.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект