我有两个下拉列表,一个是国家,另一个是州。第一次下降后第一次下降。我有两个功能,如
LoadCountry()和LoadStates(),其中LoadState在LoadCountry之后触发。
我的问题是,当我尝试将drpCountry的值设为时,得0或null
var CId = $("#" +'<%= drpCountry.ClientID%>')。val();。
问题仅发生在页面加载时。当我更改drpCountry的值时数据加载
在drpState中正确地说。面对同样的问题,其他网页也有4到5个下拉菜单。但是当我通过设置setTimeout来改变执行速度时
精细。
我可以强烈地说数据正在加载相关数据。
a,我在控制台中查了一下。
b,当我更改下拉数据加载到drpState正确时
为什么LoadState()在LoadCountry()执行完全执行之前执行?
$(function() {
LoadCountry();
LoadState();
/* when set timeout LoadState works fine */
//setTimeout(function () {
//LoadState();
//}, 200);
/* Changed Timeout when upload to server */
//setTimeout(function () {
//LoadState();
//}, 300);
$("#").change(function() {
LoadState();
})
});
function LoadCountry() {
$.ajax({
type: 'Post',
url: 'country.aspx/Loadcountry',
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: 'json',
success: function(data) {
console.log(data);
if (data.d.length > 0) {
$("#").empty();
for (var i = 0; i < data.d.length; i++) {
var Value = data.d[i];
var Id = Value.split('/')[0];
var Name = Value.split('/')[1];
$("#").append($('', {
value: Id,
text: Name
}));
}
} else {
$("#").empty();
$("#").append($('', {
value: "0",
text: "--Select--"
}));
}
}
});
}
function LoadState() {
var CId = $("#" + '').val();
alert(CId); //Getting Zero as Cid but have values
$("#").append($('', {
value: "0",
text: "--Loading--"
}));
$.ajax({
type: 'Post',
url: 'country.aspx/LoadState',
contentType: "application/json; charset=utf-8",
data: "{'CId':'" + CId + "'}",
dataType: 'json',
success: function(data) {
console.log(data);
if (data.d.length > 0) {
$("#").empty();
for (var i = 0; i < data.d.length; i++) {
var Value = data.d[i];
var Id = Value.split('/')[0];
var Name = Value.split('/')[1];
$("#").append($('', {
value: Id,
text: Name
}));
}
} else {
$("#").empty();
$("#").append($('', {
value: "0",
text: "--Select--"
}));
}
}
});