Я пытаюсь проверить регистрационную форму с помощью ajax, основываясь на проверке, существует ли IP-адрес пользователя в моей базе данных или нет.
Фактическая проблема заключается в автоматической отправке формы независимо от того, является ли оператор my if истинным или ложным в обработчике успеха вызова ajax.Мне известно, что 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.