暂停javascript处理?

问题描述:

如果我取消注释“警报”,以下代码完美地工作。这是我想出了一系列级联下拉菜单,用户选择国家,州,然后选择城市。暂停javascript处理?

随着警报取消注释,就像数值没有得到更新。我尝试了很多东西,但我没有运气。我确信我在做一些愚蠢的事情。任何帮助是极大的赞赏。

谢谢!

$(document).ready(function() { 
    $("#Country").change(function() { 
     $("#City").html(""); 
     var id = $("#Country").val(); 
     getStates(id); 

//  alert("CountryId = " + id); 
     var stateId = $("#State").val(); 
//  alert("stateId = " + stateId); 
     var stateId = $("#State").val(); 
     alert("stateId = " + stateId); 

     $(document).ready(function() { 
      getCities(stateId); 
     }); 
    }); 
    $("#State").change(function(){ 
     var id = $("#State").val(); 
     id = (id==null)?1:id; 
      getCities(id); 
    }); 
}); 
+0

'下面的代码完美的作品,如果我取消了alerts'矛盾'随着警报取消注释,它就像值还没有得到更新'。 – 2012-02-29 20:43:48

+1

编辑你的问题,并把它的getStates代码 – Dampsquid 2012-02-29 20:43:57

+3

问题不在这里,它在你的“getStates()”和“getCities()”函数中。我敢打赌,他们正在打阿贾克斯电话。那些不是同步的。 – Pointy 2012-02-29 20:44:03

如果函数getStates是对服务器的异步请求,则必须向其添加成功回调。如果不是这很奇怪。

btw。 $(document).ready在文件准备就绪没有任何意义。

+0

:)这不应该留在那里。这是我试图使其工作的一个尝试...... – user1241166 2012-02-29 22:35:52

您的代码并没有太大的意义

也许这就是你的意思

$(document).ready(function() { 
    $("#Country").change(function() { 
    var id = $(this).val(); 
    getStates(id); 
    }); 
    $("#State").change(function() { 
    var id = $(this).val(); 
    getCities(id); 
    }); 
});