2017-07-05 7 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 
 
    } 
 
};

関連する問題