1

当用户单击 div 中的组合框时,我正在向数据库发出 ajax 调用。我正在尝试使用 div 点击事件来动态填充我的组合框。当单击从数据库中获取的数据但组合框失去焦点时,我在 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;
    }
});

4

1 回答 1

1

我不确定在您更改其数据提供者时是否可以保持下拉菜单处于打开状态。

潜在地,您可以在加载数据后打开下拉列表,但根据此处的讨论 -我可以使用 jQuery 打开下拉列表- 这可能不容易实现。但是,看看那里的任何解决方法是否适合您的需求。

于 2013-07-22T21:02:49.097 回答