POST请求之前的表单验证

所以我有2个函数,一个是异步函数,基本上是HTTP Post Request,另一个是表单验证。我希望 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请求功能。


有只小跳蛙
浏览 135回答 2
2回答

狐的传说

它会触发,因为您不会从 checkInputs 函数返回任何内容。您需要返回布尔值 /true 或 false/。像这样: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;}

守候你守候我

在函数 checkInputs() 中,创建一个变量 ,在每个 if 语句中将此变量赋值 false:let check = trueif (usernameValue === '') {  setError()  check = false;}return check;在函数结束时。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript