Проверка полей ввода не пуста - PullRequest
0 голосов
/ 09 марта 2020

Я сделал этот код для проверки, если все поля ввода были заполнены. Если не отправка запрещена, но когда она верна, мне нужно дважды щелкнуть по кнопке отправки, в первый раз, когда она проверяет и добавляет eventListener, и во второй раз, потому что у нее есть прослушиватель событий. Как я могу изменить код так, чтобы мне нужно было нажимать только один раз?

function validaInput() {
  const inputs = document.querySelectorAll(".input-field");
  let validez;
  inputs.forEach(function(input) {
    if (input.value !== "") {
      validez = true;
    } else {
      validez = false;
    }
  });

  if (validez) {
    submitBtn.addEventListener("click", calculaPromedio);
    submitBtn.addEventListener("click", addMateria);
  } else {
    alert("No ha llenado todos los campos.");
  }
}

1 Ответ

0 голосов
/ 09 марта 2020

Просто вызовите соответствующие функции вместо добавления слушателя. (Кроме того, в противном случае вы бы добавляли новых дублирующих слушателей при каждом нажатии кнопки.)

  if (validez) {
    calculaPromedio();
    addMateria();
  } else {
    alert("No ha llenado todos los campos.");
  }

Если вы используете this внутри этих функций, вам потребуется вместо этого, например, calculaPromedio.call(this).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...