1

フォームを送信していますが、最初にいくつかのチェックを実行するためにフォームが必要なので、XMLHttpRequestを実行して別のPHPスクリプトに何かが設定されているかどうかを確認する必要があるjavascriptを呼び出しています。値を取り戻すことはできますが、応答を受け取っている領域内でのみメッセージを出力します。これを変数に入れて他の場所で使用しようとしても機能しません。スクリプトは次のとおりです。

function validateform() {

var complete = "Please fill in the following fields:";
var temp;

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)
    {

    temp=xmlhttp.responseText;
     alert(temp);
    }
  }


xmlhttp.open("GET","hrp/recaptcha/verify.php",true);
xmlhttp.send();

alert(temp);

最初の"alert(temp")が出力されますが、コードの最後に続くものは常にundefinedと表示されるため、外部で使用することはできません。

何か案は?ありがとう

4

1 に答える 1

1

非同期呼び出しは必要ないようです。その場合は、次のようにします。

xmlhttp.open("GET","hrp/recaptcha/verify.php",false);

ブロックを削除することもできます。

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
于 2012-07-24T16:32:50.843 に答える