2012-09-21 69 views
0

嗨,我使用jquery combo-boxcodeigniter應用,jQuery的組合框,如何觸發select事件

有3個組合框。當國家值改變時,狀態組合框再次用新值創建,當狀態組合框值改變用新值創建的城市組合框時。

它第一次正常工作,但表單提交後,城市和州下拉更改事件不起作用。

國家組合框更改事件的作品,我改變國家組合框後,再次狀態組合更改事件的作品。

這裏的問題是,我想

1.狀態組合框的事件不綁定,直到國家組合框的變化。 2.城市組合框事件不會綁定,直到狀態組合框發生變化。

**有沒有辦法在文檔準備就緒時觸發國家組合框選擇事件。

在此先感謝...........

enter image description here

這是我的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);       

         } 
        } 
       }     
      }); 
     } 
}); 
+0

http://stackoverflow.com/questions/1778184/how-to-change-selected-value-in-combobox-using-javascript可能會幫助你 –

回答

-1

我不知道這是否會解決您的問題,但我最近有與組合框和autopostbacks相同的問題等...

我將以下內容添加到我的jQuery:

function pageLoad() { 
     // Your functionality here 
    } 

    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoad); 
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) 
+0

不,它不工作........ 。 –

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 
      } 
     } 
    }); 

希望這將工作!