开机自检请求前的表单验证



所以我有2个函数,一个是异步函数,基本上是一个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 请求功能。

在函数 checkInputs(( 中,创建一个变量let check = true,在每个 if 语句中为此变量赋值 false:

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

return check;在函数结束时。

它会触发,因为您不会从 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;
}

最新更新