2014-01-06 61 views
0

我在我的pgae中有一個下拉列表。當我提醒兩個連續時間值的下拉選擇索引我得到兩個不同的值。這是我的代碼。JavaScript:獲取dropdownlist所選索引值的兩個不同值

$(document).ready(function() { 
// here code for getting data from server to bind dropdown 
DoAjaxCall("?method=getDataForDDL&callbackmethod=BindDDL") 

// after binding data to dropdown I wrote following two alert 
alert(document.getElementById("ddlState").selectedIndex); //this alert -1 
alert(document.getElementById("ddlState").selectedIndex); // this alert 0 
alert(document.getElementById("ddlState").selectedIndex); // this alert 0 
} 
function BindDDL(data, msg) {// this function is called automatically after successfull AJAX call 
    var tbldata = eval('(' + data.toString() + ')'); //convert JSON data to Javascript Object 
    var ddl = document.getElementById("ddlState"); 
    for (var i = 0; i < tbldata.Table.length; i++) { 
     ddl.options[ddl.length] = new Option(tbldata.Table[i][1], tbldata.Table[i][0]); 
    } 
} 
function DoAjaxCall(parameter){ 
//code for getting data from server by "POST" method 
//After this function BindDDL is called which is call back function. 
} 
+0

如果你不能得到我的問題,請告訴我。 –

+0

無法複製:http://jsfiddle.net/xbZbA/1/我猜你的代碼有另一個問題,你沒有顯示。 – MikeSmithDev

+0

@Anil請分享已評論的代碼。我嘗試了同樣的警告兩次,但我得到正確的答案。 – Susai

回答

2

AJAX請求是異步的,所以你不能把你選擇的索引檢查代碼放在AJAX調用之後;你必須把它放在AJAX請求的回調中。因此,您可能第一次得到-1,該列表中沒有填充任何數據,但第二次填充。

+0

你的意思是我必須把警報放在BindDDL函數中。 –

+0

是的,將功能放在那裏。 –

+0

謝謝....「AJAX請求是異步的」這句話解決了我的問題,並明白了這是什麼意思。 –