1

この質問にどのようにアプローチしますか: 3 つの選択 (ドロップダウン) があります。1 つは人物、1 つは州、もう 1 つは都市リストです。

州を選択すると、その州内のすべての都市が都市リストにロードされます

人が変わったときの問題、選択(ドロップダウン)を変更できます

$('#State').find('[value="' + user.State + '"]').prop('selected', true);

状態がプリロードされているためです。その後、私は持っていました

$('#State').trigger('change');

都市リストを読み込む

私の質問は、$('#City') が ajax からの読み込みを完了したことを検出するにはどうすればよいですか? 多分このようなもの:

$('#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);
        });
    }
4

1 に答える 1