我正在提交表单但需要我的表单先运行一些检查,所以我调用了一些需要运行XMLHttpRequest的javascript来查看是否在其他PHP脚本上设置了某些内容。我可以返回值,但只在我得到响应的区域内输出消息,任何将其放入变量并在其他地方使用的尝试都不起作用,这是我的脚本:
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”)被输出但是在代码结尾之后的那个总是说未定义,所以我不能在外面使用它。
有什么想法吗? 谢谢:D
答案 0 :(得分:1)
您似乎不希望进行异步调用,在这种情况下您需要执行以下操作:
xmlhttp.open("GET","hrp/recaptcha/verify.php",false);
您也可以删除该块:
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{