0

こんにちは、アプリケーションに使用jquery combo-boxしています。codeigniter

3 つのコンボボックスがあります。国の値が変更されると、州のコンボボックスが新しい値で再度作成され、州のコンボボックスの値が変更されると、都市のコンボボックスが新しい値で作成されます。

初めて正常に動作しますが、フォームを送信した後、都市と州のドロップダウン変更イベントが機能しません。

国コンボボックスの変更イベントが機能し、国コンボボックスの値を変更した後、状態コンボボックスの変更イベントが再度機能します。

ここでの問題は、私が思うに

1.状態コンボボックスのイベントは、国のコンボボックスが変更されるまでバインドされません。2.都市コンボボックスのイベントは、状態コンボボックスが変更されるまでバインドされません。

**ドキュメントの準備ができている状態で国コンボボックスの選択イベントをトリガーする方法はありますか。

前もって感謝します...........

ここに画像の説明を入力

これは私のjqueryです

jQuery('#combolist_country').combobox({
        selected: function(event, ui) {

            jQuery('#combolist_state').combobox().empty();
            jQuery('#combolist_city').combobox().empty();

            dataVal = jQuery(this).val();

            jQuery.ajax({
                type :  'POST',
                url  :  baseurl + "/search_by_country",
                data: {country_id:dataVal},
                dataType:'json',
                success: function(data)
                {
                    if(data)
                    {
                        var data_arr=data;
                        if(jQuery.isArray(data_arr['state_list']) && data_arr['state_list'].length > 0){
                            var aList = data_arr['state_list'];
                            var sKey;
                            jQuery("#combolist_state").combobox('destroy').empty();
                            jQuery('#combolist_state').removeAttr('disabled');
                            jQuery("#combolist_state").append('<option value="0">Select State</option>');           
                            for (sKey in aList) {
                                jQuery("#combolist_state").append('<option value="' + aList[sKey].StateID + '">' + aList[sKey].StateName + '</option>');
                            }
                            jQuery("#combolist_state").combobox({
                                selected:function(){

                                    jQuery('#combolist_city').combobox().empty();
                                    jQuery('#combolist_neighborhood').combobox().empty();

                                    dataVal = jQuery(this).val();

                                    jQuery.ajax({
                                        type :  'POST',
                                        url  :  baseurl + "search_by_state",
                                        data: {state_id:dataVal},
                                        dataType:"json",
                                        success: function(data)
                                        {
                                            if(data)
                                            {
                                                var data_arr=data;                                  
                                                if(jQuery.isArray(data_arr['city_list']) && data_arr['city'] == 1 && data_arr['city_list'].length > 0){

                                                    var aList = data_arr['city_list'];
                                                    var sKey;
                                                    jQuery("#combolist_city").combobox('destroy').empty();
                                                    jQuery('#combolist_city').removeAttr('disabled');
                                                    jQuery("#combolist_city").append('<option value="0">Select City</option>');         
                                                    for (sKey in aList) {
                                                        jQuery("#combolist_city").append('<option value="' + aList[sKey].CityID + '">' + aList[sKey].CityName + '</option>');
                                                    }  

                                                    jQuery('#combowrap_combolist_city').fadeTo('slow',1);

                                                }                                                   
                                            }                                                                                       
                                        }  
                                    });
                                }
                            });  

                            jQuery('#combowrap_combolist_state').fadeTo('slow',1);                          

                        } 
                    } 
                }                   
            });
        }
});
4

3 に答える 3

0

これを試して

$('#combolist_country').combobox({
        selected: function (event, ui) {
            var id = ui.item.value;
            if (id > 0) {
                //Fill Drop Down for State and Add Similar logic for City and Pincode
            }
        }
    });

これがうまくいくことを願っています!

于 2012-09-21T08:31:57.070 に答える
0

jQuery("#combolist_state").html(list_of_options)コンボボックスとイベントを破棄して再作成するのではなく、コンボボックスを再作成してイベントを保持するために使用します。

var list_of_options = '';
for (sKey in aList)
    list_of_options +='<option value="' + aList[sKey].StateID + '">' + aList[sKey].StateName + '</option>';
jQuery("#combolist_state").html(list_of_options)
于 2012-09-21T08:17:54.017 に答える
-1

これで問題が解決するかどうかはわかりませんが、最近、コンボボックスや自動ポストバックなどで同じ種類の問題が発生しました...

jQueryに以下を追加しました。

    function pageLoad() {
        // Your functionality here
    }

    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoad); 
于 2012-09-21T08:00:02.687 に答える