【发布时间】:2021-02-01 07:11:26
【问题描述】:
验证脚本
异步函数
function userNameValidation(input, message) {
const formInput = input.value.trim();
return new Promise((resolve, reject) => {
$.ajax({
type: "POST",
url: "ajax/usernameAvailability.php",
data: {
username: formInput
},
success: (feedback) => {
var convertedFeedback = JSON.parse(feedback);
console.log(convertedFeedback);
if (convertedFeedback.status === "alreadyTaken") {
setErrorFor(input, message);
reject(false);
} else {
setSuccessFor(input);
resolve(true);
}
}
});
});
}
异步函数
function emailValidation(input, message) {
const formInput = input.value.trim();
return new Promise((resolve, reject) => {
$.ajax({
type: "POST",
url: "ajax/emailAvailability.php",
data: {
email: formInput
},
success: (feedback) => {
var convertedFeedback = JSON.parse(feedback);
console.log(convertedFeedback);
if (convertedFeedback.status === "alreadyTaken") {
setErrorFor(input, message);
reject(false);
} else {
setSuccessFor(input);
resolve(true);
}
}
});
});
}
注册脚本
if (Empty(username, "Username cannot be blank")) {
unameStatus = false; // if false then no error on username input fields
if (userNameValidation(username, "Username is already taken")) {
unameStatus = false;
registerUser(); // to register user
} else {
unameStatus = true; // if true then have error on username input fields
registerUser();
}
} else {
unameStatus = true;
//registerUser();
}
if (Empty(email, "Email cannot be blank")) {
emailStatus = false; // if false then no error on username input fields
if (emailValidation(email, "email is already taken")) {
emailStatus = false;
registerUser();
to register user
} else {
emailStatus = true; // if true then have error on username input fields
registerUser();
}
} else {
emailStatus = true;
//registerUser();
}
【问题讨论】:
-
请使用tour,阅读How to Ask,并创建minimal reproducible example。
标签: javascript php ajax asynchronous