2012-02-29 69 views
1

如果我取消註釋「警報」,以下代碼完美地工作。這是我想出了一系列級聯下拉菜單,用戶選擇國家,州,然後選擇城市。暫停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

回答

7

如果函數getStates是對服務器的異步請求,則必須向其添加成功回調。如果不是這很奇怪。

btw。 $(document).ready在文件準備就緒沒有任何意義。

+0

:)這不應該留在那裏。這是我試圖使其工作的一個嘗試...... – user1241166 2012-02-29 22:35:52

0

您的代碼並沒有太大的意義

也許這就是你的意思

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