从 onsubmit 调用 ajax 的表单验证
Form validation with ajax called from onsubmit
我正在尝试根据检查用户 IP 地址是否已存在于我的数据库中来验证 ajax 的注册表。
实际问题依赖于自动提交表单,独立于 ajax 调用的成功处理程序中我的 if 语句是真还是假。我知道 ajax 调用是异步执行的,并且可能在 if 语句之前执行了表单,但我不知道如何解决这个问题。
<form id="form" action="/chat/register" method="post" class="form-horizontal" role="form" onSubmit="return do_validation(this);">
ajax 调用:
function do_validation() {
var data = {
"action": "check",
"username": username,
"password": password,
"confirm_password": confirm_password,
"email": email
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "uservisit.php", //Relative or absolute path to response.php file
data: data,
success: function(data) {
if (data["ip_address"] === 0) {
return true;
}else{
alert(data["ip_address"] + "\n" + data["username"] + "\n" + data["password"] + "\n" + data["confirm_password"] + "\n" + data[$
return false;
}
}
}); return false;
}
data["ip_address"]
提供正确的信息,如果我将 ip 存储在数据库中,我会得到 1 个警报,如果不是 0。
我找到了一个可行的解决方案,但它可能不是最好的
var retValue = false;
var data = {
"action": "check",
"username": username,
"password": password,
"confirm_password": confirm_password,
"email": email
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
global: false,
type: "POST",
dataType: "json",
url: "uservisit.php", //Relative or absolute path to response.php file
data: data,
async: false,
success: function(data) {
if (data["ip_address"] === 0) {
retValue = true;
}else{
alert(data["ip_address"] + "\n" + data["username"] + "\n" + data["password"] + "\n" + data["confirm_password"] + "\n" + data["email"] + "\n" + data["visitlasttime"]);
retValue = false;
} console.log(retValue);
}
});
}// End else
console.log(retValue);
return retValue;
我正在尝试根据检查用户 IP 地址是否已存在于我的数据库中来验证 ajax 的注册表。
实际问题依赖于自动提交表单,独立于 ajax 调用的成功处理程序中我的 if 语句是真还是假。我知道 ajax 调用是异步执行的,并且可能在 if 语句之前执行了表单,但我不知道如何解决这个问题。
<form id="form" action="/chat/register" method="post" class="form-horizontal" role="form" onSubmit="return do_validation(this);">
ajax 调用:
function do_validation() {
var data = {
"action": "check",
"username": username,
"password": password,
"confirm_password": confirm_password,
"email": email
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "uservisit.php", //Relative or absolute path to response.php file
data: data,
success: function(data) {
if (data["ip_address"] === 0) {
return true;
}else{
alert(data["ip_address"] + "\n" + data["username"] + "\n" + data["password"] + "\n" + data["confirm_password"] + "\n" + data[$
return false;
}
}
}); return false;
}
data["ip_address"]
提供正确的信息,如果我将 ip 存储在数据库中,我会得到 1 个警报,如果不是 0。
我找到了一个可行的解决方案,但它可能不是最好的
var retValue = false;
var data = {
"action": "check",
"username": username,
"password": password,
"confirm_password": confirm_password,
"email": email
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
global: false,
type: "POST",
dataType: "json",
url: "uservisit.php", //Relative or absolute path to response.php file
data: data,
async: false,
success: function(data) {
if (data["ip_address"] === 0) {
retValue = true;
}else{
alert(data["ip_address"] + "\n" + data["username"] + "\n" + data["password"] + "\n" + data["confirm_password"] + "\n" + data["email"] + "\n" + data["visitlasttime"]);
retValue = false;
} console.log(retValue);
}
});
}// End else
console.log(retValue);
return retValue;