需要多次单击才能在IE8上显示的Jquery动态组合框选项

时间:2013-07-22 19:55:29

标签: jquery

当用户点击div中的组合框时,我正在向数据库发出ajax调用。我正在尝试使用divs click事件动态填充我的组合框。我在IE8上遇到问题(ff工作正常)当点击数据从数据库中取出但组合框丢失焦点时我必须再次点击组合框进行选择。我试图找出为什么会发生这种情况。谢谢您的帮助。这是表格的td段中的div。

<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 个答案:

答案 0 :(得分:1)

我不确定在更改数据提供程序时是否可以保持下拉列表打开。

潜在地,您可以在加载数据后打开下拉列表,但根据此处的讨论 - Can I open a dropdownlist using jQuery - 可能不容易实现。但是,看看那里的任何变通方法是否适合您的需求。