2013-07-22 46 views
1

我正在觸發ajax調用數據庫時,用戶點擊在div中的組合框。我正嘗試使用divs單擊事件來動態填充我的組合框。點擊從數據庫中獲取數據時,我遇到了IE8上的一個問題(如果工作正常),但組合框丟失集中,我必須再次單擊組合框以做出選擇。我試圖找出爲什麼會發生這種情況。謝謝您的幫助。這是位於桌子td片段中的div。jquery動態combobox選項需要multipe點擊以顯示在IE8

<div class="catagory"><select class="catagorycombo"><option value="3456">Select All</option></select></div> 


<script type="text/javascript"> 

$('body').on('click', '.catagory', function(e){ 


var comboboxTest= $(this).parent().next("td").find('.testcombo'); 
var combobox = $(this).find('.catagorycombo'); 



var url = '<%= Url.Action("GetCatagoryListDropDown", "Document") %>'; 
var contextKey=combobox[0].options[0].value; 
var text=combobox[0].options[0].text; 
var length=combobox.prop('options').length; 

if(text=="Select All" && length<=1) 
{ 
      combobox.empty(); 

      combobox.append("<option value=\"" + contextKey + "\">Select All</option>"); 
      combobox.append("<option value=\"loading\">Loading...</option>"); 

     $.ajax({ 
     type: "POST", 
     url: url, 
     data: { contextKey:contextKey }, 
     success: function(data, textStatus, jqXHR) { 
        $.each(data, function(i, el) { 
         // combobox.append(new Option(el["Text"],el["Value"])); 
         combobox.("<option value=\"" + el["Value"] + "\">" + el["Text"] + "</option>"); 

        }); 

        combobox.find('option[value=loading]').remove(); 

       } 
    }); 

    } 
    else 
    { 
      return false; 
    } 
}); 

回答

1

我不知道它是否能夠保持,當你改變它的數據提供程序的下拉公開。

加載數據後,可能會打開下拉菜單,但按照此處的討論 - Can I open a dropdownlist using jQuery - 這可能不容易實現。不過,看看這些解決方案是否適合您的需求。

+0

Firefox正在工作。這是一個IE瀏覽器唯一的問題? – Yofi

+0

最有可能的是。你有沒有看過這個? http://stackoverflow.com/questions/113218/add-options-to-select-box-without-internet-explorer-closing-the-box –

+0

我已經使用您提供的第一個鏈接作爲起點並且已經管理解決我的問題。仍然當單擊組合框時,它會變成一個列表框(因爲我正在修改大小)並返回模糊組合框,這對用戶來說可能看起來很奇怪。我將不得不解決,直到我被召喚。謝謝! – Yofi