你会如何处理这个问题: 我有3个选择(下拉列表),一个是人,一个是州,一个是城市列表。
选择州后,该州内的所有城市都将加载到城市列表
我的问题是当这个人被改变时,我可以用
改变选择(下拉列表)$('#State').find('[value="' + user.State + '"]').prop('selected', true);
因为状态是预先加载的。之后我有了
$('#State').trigger('change');
加载城市列表
我的问题是如何检测从ajax加载的$('#City')?也许是这样的:
$('#City').on('load', function(){
$('#City').find('[value="' + user.City+ '"]').prop('selected', true);
});
但我觉得我做错了......
有什么建议吗?谢谢!
这是完整的代码:
$('document').ready(function ()
{
$('#State').live('change', function ()
{
GetCityList($(this).val());
});
// when loading, detect query string for user's name
var user = GetUserInfo();
if (user.Name != '')
{
$('#State').find('[value="' + user.State + '"]').prop('selected', true);
}
$('#State').trigger('change');
// this line will not work because City has not finished loading
$('#City').find('[value="' + user.City + '"]').prop('selected', true);
});
function GetCityList(State)
{
$.getJSON('/Handler.ashx?State=' + State, function (data)
{
var html = '';
// process data to produce html
$('#CityList').html(html);
});
}
答案 0 :(得分:-1)
嗯,对于那些与我有同样问题的人,这就是答案:
$('document').ready(function ()
{
$('#State').live('change', function ()
{
GetCityList($(this).val());
});
// when loading, detect query string for user's name
var user = GetUserInfo();
if (user.Name != '')
{
$('#State').find('[value="' + user.State + '"]').prop('selected', true);
}
$('#State').trigger('change');
// this listens to the custom event that you specified
$('#CityList').on('loaded123',function()
{
$(this).find('[value="' + user.City + '"]').prop('selected', true);
});
});
function GetCityList(State)
{
$.getJSON('/Handler.ashx?State=' + State, function (data)
{
var html = '';
// process data to produce html
$('#CityList').html(html);
// trigger a custom event, any name you want
$('#CityList').trigger('loaded123');
});
}