Проверка формы перед запросом POST - PullRequest
0 голосов
/ 26 мая 2020

Итак, у меня есть 2 функции: одна асинхронная c функция, которая в основном является HTTP-запросом, а другая - проверкой формы. Я хочу, чтобы функция запроса POST запускалась только в том случае, если функция проверки формы возвращает true. Проверка формы выглядит так:

regForm.addEventListener('submit', function(event){
  if (checkInputs()) {
    // trigger post request function
  }
})
function checkInputs() {
  const usernameValue = form.username.value.trim();
  const passwordValue = form.password.value.trim();
  const emailValue = form.email.value.trim();

  if (usernameValue === '') {
    // trigger another function that handles errors
   setError(form.username, 'Can\'t be blank');
  } else {
   // triggers function that handles success(color change, etc.)
   setSuccess(form.username);
  }

  if (passwordValue=== '') {
    // trigger another function that handles errors
   setError(form.password, 'Can\'t be blank');
  } else {
   // triggers function that handles success(color change, etc.)
   setSuccess(form.password);
  }
}

Но, похоже, это не работает, это не запускает функцию запроса POST.

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

внутри функции checkInputs (), создать переменную let check = true, присвоить этой переменной false в каждом операторе if:

if (usernameValue === '') {
  setError()
  check = false;
}

return check; в конце функции.

0 голосов
/ 26 мая 2020

Он срабатывает, потому что вы ничего не возвращаете из функции checkInputs.

Вам нужно вернуть логическое / истинное или ложное /.

Что-то вроде:

function checkInputs() {
  const usernameValue = form.username.value.trim();
  const passwordValue = form.password.value.trim();
  const emailValue = form.email.value.trim();
  let check = true;
  if (usernameValue === '') {
    // trigger another function that handles errors
    setError(form.username, 'Can\'t be blank');
    check = false;
  } else {
    // triggers function that handles success(color change, etc.)
    setSuccess(form.username);
  }

  if (passwordValue=== '') {
    // trigger another function that handles errors
    setError(form.password, 'Can\'t be blank');
    check = false;
  } else {
    // triggers function that handles success(color change, etc.)
    setSuccess(form.password);
  }

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