日期:2014-05-16  浏览次数:20770 次

Ajax代码不执行的问题,太BT了,请高手帮忙啊!~~~~ - Web 开发 / Ajax
ajax常用的两个函数如下:
  function getalluser(objectID) {
var URL = "getuserajax.jsp"; 
var pars = "objectID=" + objectID; 
var myAjax = new Ajax.Request(URL, { method: 'post', parameters: pars, onComplete: addop}); 
}

function addop(req){
  var maxsize = 5;
  var con = req.responseText.split("|");
  con = con[1];
  if(con > maxsize){
  alert("选择对象不能超过5个!");
  maxBool=false;
  }else{
  maxBool=true;
  }
  }
然后我在另外一个函数中调用如下:
  getalluser(objectID);
//alert(maxBool);
if(!maxBool){
  return false;
}
变量 : maxBool是全局变量,我就是通过执行ajax来改变 maxBool的值,从而根据它的值来处理,但是现在有一个问题就是:在我使用getalluser(objectID)这个函数后面必须要执行一下alert(maxBool)这条命令,如果不执行,function addop(req) 这个函数也不执行。从而maxBool这个全局变量就无法进行更改。但是加上alert(maxBool)这条命令程序就正确无误,实在是郁闷,希望知道的高手指点,非常感谢!~~~~~~~~~~~

------解决方案--------------------
你指定了异步执行了吧,这样存在一个时间返回的问题.....

我猜不是没设置,而是执行getalluser后还没等执行addop就已经执行return false;了
getalluser(objectID); 
//alert(maxBool); 
if(!maxBool){ 
return false; 
}