2013-04-08 2 views
0

Пользователь заполняет форму и нажимает кнопку отправки. Данные отправляются обратно на сервер и на основе ответа сервера сервера отправляется форма или нет (а страница перенаправляется или нет). Проблема заключается в том, что форма всегда отправляется и перенаправление страницы до получения ответа сервера.Определение представления формы на ответе 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, и если это не нужно, я бы предпочел не использовать его сейчас.

ответ

1

Я хотел бы использовать <button>, который не представляет форму (тип не "submit"):

<form ...> 
... 
<button onclick="SubmitForm(...)">Submit</button> 
</form> 

Затем в конце SubmitForm, вы можете поставить:

document.querySelector("form").submit(); 

Когда вы хотите отправить форму.

Смежные вопросы