如题var rt = false;
var postdt = "id="+ $("#Id").attr("value");

$("#Result").load("ajax.asp?t="+Math.random(), postdt, function(responseText, textStatus, XMLHttpRequest){

           if(responseText=="ok") rt = true;
       );alert(rt);//////////问题是 在function(){}里改变的 rt的值,但是 最后的alert()怎么都是 false。
那如何才能在function(){} 改变全局变量的值?

解决方案 »

  1.   

    .....同步模式并且成功返回,条件满足就可以alert出true你这样写,你的ajax request还没完成,就执行了alert(rt),当然就false了
      

  2.   

    拷贝的时候少了个}
    代码是完整的。$("#Result").load("ajax.asp?t="+Math.random(), postdt, function(responseText, textStatus, XMLHttpRequest){           if(responseText=="ok") rt = true; 
               }
          );
    这样应该是完成了,就是这样。上面的代码指点下,谢谢啊  如何做
      

  3.   

    ajax 已經完成啦 ,
    在 function(){} 里 rt 有等於 TRUE但是 方法外面的 RT 值不會改變,就是說好像 方法裏面不能改變全局變量的值我看有些人說  在裏面要用  this.rt  來調用全局變量,可還是不行。
      

  4.   

    被你打败了,你用$.load,默认是异步模式,你的那个回调函数是要ajax请求完成,并且成功了才会调用,而此时你的脚本早就执行完了,rt值还没被改变就alert出来了
      

  5.   

    終於明白了,謝謝靚女啊, 問題還沒解決,如何在最後返回一個ture, 才能執行下步動作?