2010-07-26 119 views
1

我有一个非常长的下拉列表项目列表。由于列表很长,我只想显示列表中的项目,如果用户实际单击下拉列表以展开它。我发现了关于如何使用带有级联下拉列表的AJAX的各种教程,但没有解释是否有可能只有一个dropdownlist,当用户扩展AJAX时填充它。使用AJAX填充DropDownList

有没有任何扩展与AJAX工具包,我错过了?什么是实现这一目标的最佳方式?

感谢, 本

回答

1

我会做的是这样的:

在列表中有一个空的项目。当下拉列表获得焦点时,您可以将该项目更改为加载或类似的内容。然后你可以打你想要的ajax电话。

一旦它完成,您从下拉列表中取消绑定焦点事件,因此您不会在随后的焦点事件上重新加载。

似乎不会太难做这样的事情。

我会看看如果你需要帮助,我可以在jsfiddle上做些什么。

编辑:顺便提一下关于扩展器的问题,我对此一无所知。

编辑2:你可以尝试这样的事:

$(document).ready(
    function() 
    { 
     $("#theSelect").bind("focus", function() 
          { 
           $("option:first", this).html("Loading..."); 
           setTimeout(AjaxSuccessCall, 2000); 
          }); 
    }); 

function AjaxSuccessCall(data) 
{ 
    var select = $("#theSelect"); 
    select.unbind("focus"); 
    select.children("option").remove(); 
} 
+0

嗨自旋子,感谢您的回复。你知道有哪些教程可以使用这种方法吗?我只是开始整个AJAX的事情,所以不太确定要寻找什么。 – b3n 2010-07-26 22:36:37

+0

我添加了一个例子。 – spinon 2010-07-27 04:23:54

+0

感谢spinon的例子,生病了试试看。干杯。 – b3n 2010-07-27 22:12:14