JavaScript:获取dropdownlist所选索引值的两个不同值

JavaScript:获取dropdownlist所选索引值的两个不同值,javascript,asp.net,Javascript,Asp.net,我的pgae中有一个下拉列表。当我警告下拉选择索引的两个连续时间值时,我得到两个不同的值。这是我的密码 $(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 fo

我的pgae中有一个下拉列表。当我警告下拉选择索引的两个连续时间值时,我得到两个不同的值。这是我的密码

$(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.
 }
$(文档).ready(函数(){
//下面是从服务器获取数据以绑定下拉列表的代码
DoAjaxCall(“?方法=getDataForDDL&callbackmethod=binddl”)
//将数据绑定到下拉列表后,我编写了以下两个警报
警报(document.getElementById(“ddlState”).selectedIndex);//此警报-1
警报(document.getElementById(“ddlState”).selectedIndex);//此警报0
警报(document.getElementById(“ddlState”).selectedIndex);//此警报0
}
函数binddl(data,msg){//此函数在AJAX调用成功后自动调用
var tbldata=eval(“(“+data.toString()+”);//将JSON数据转换为Javascript对象
var ddl=document.getElementById(“ddlState”);
对于(变量i=0;i
AJAX请求是异步的,因此您不能在AJAX调用后放入所选的索引检查代码;您必须将其放入AJAX请求的回调中。因此,第一次得到-1时,列表中可能没有填充任何数据,但第二次是。如果您不能得到我的问题,请告诉我。不能吗复制:我猜你的代码还有一个问题没有显示出来。@Anil请分享注释过的代码。我尝试了两次相同的方法,即提醒,但得到了正确的答案。我可以复制:;似乎当你第一次呼叫时,下拉列表还没有绑定(无选项)。您没有共享相关代码。理想情况下,您的
警报(document.getElementById(“ddlState”)。selectedIndex)
应该在
binddl
之后。这是ajax,无论您在哪里使用下拉列表,都必须将其作为
binddl
中的最后一行调用。您的意思是我必须在binddl函数中添加警报。是的,将该功能放在那里。谢谢……“ajax请求是异步的”这句话解决了我的问题,并理解了这意味着什么。