2017-07-05 75 views
0

我是新來的JS,我試圖創建一個函數,在提交表單之前檢查一些東西。 在HTML我有:使用XMLHttpRequest的響應

<form name="loginform" method="post" onsubmit="return foo()" action="adminlogin.php"> ... </form> 

函數foo()是:

foo(){ 
    if(..){ 
    return false; 
    } 
    else{ 
     var url = "credenziali.php"; 
     var params = "name="+username+"&password="+password; 
     var http_r = new XMLHttpRequest(); 
     http_r.onreadystatechange = function() { 
      if (this.readyState == 4 && this.status == 200) { 
       //something 
      } 
     }; 
     http_r.open("GET", url+"?name="+username+"&pass="+password, true); 
     http_r.send(); 
     // here I want to return false or true dependence of responseText 
    } 

在功能上的評論是,我想用什麼請求返回。 我該怎麼辦?

+0

你不能。 'foo()'在ajax請求返回響應之前結束。無論代碼是否希望獲得返回值,都需要在回調函數中執行(您有'//'的地方) – James

回答

0

嘗試在http_r.send()之前插入此內容並返回。

http_r.onload = function() { 
 
    if (http_r.status >= 200 && http_r.status < 400) { 
 
    // Success! 
 
    } else { 
 
    // We reached our target server, but it returned an error 
 
    } 
 
};