Пользователь заполняет форму и нажимает кнопку отправки. Данные отправляются обратно на сервер и на основе ответа сервера сервера отправляется форма или нет (а страница перенаправляется или нет). Проблема заключается в том, что форма всегда отправляется и перенаправление страницы до получения ответа сервера.Определение представления формы на ответе Ajax
function SubmitForm(name, data1)
{
var result;
var checkResult = function(result)
{
alert("final value is: "+result)
return result
}
var xmlhttp
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
if(xmlhttp.responseText)
{
result = true
}
else
{
document.getElementById("report").innerHTML = "blah blah blah"
result = false
}
checkResult(result)
}
}
xmlhttp.open("POST", "Checkdata1.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
xmlhttp.send("name="+encodeURIComponent(name.value)+"&data1="+encodeURIComponent(data1.value))
//return false
}
Адрес электронной почты: HTML-код формы, которая вызывает вышеуказанную функцию JavaScript.
<form onsubmit="return isPasswordCorrect(document.getElementById('name'), document.getElementById('txtField1'))" action="nextpage.php" method="GET">
Я знаю, что идея для функции, чтобы вернуть false
, чтобы предотвратить форму от их представления, но как я могу заставить его ждать достаточно долго для сервера, чтобы ответить через Ajax? Кстати, мне не нужен JQuery, и если это не нужно, я бы предпочел не использовать его сейчас.