是否可以在单击时填充SELECT下拉列表?

时间:2009-10-23 07:34:52

标签: javascript jquery html ajax

我想在我的页面上有一堆SELECT下拉列表,最初可能是空的。当用户点击其中一个时,我希望对服务器进行AJAX调用,以获得所选下拉列表的所需列表。然后将此AJAX调用的结果放入下拉列表中,然后下拉列表正常工作。

这是否可能延迟显示下拉列表扩展直到AJAX调用完成?我目前已经将事件绑定到每个SELECT下拉列表的Focus事件,这几乎可以正常工作,除了用户首先显示空列表。当他们点击时,列表随后会填充结果并从此开始正常工作。

理想情况下,我希望点击它时说“加载...”,然后用结果替换它,而无需用户点击然后再返回。不确定这是否可行。

我不介意转移到jQuery下拉列表而不是标准HTML SELECT,以使其工作。

3 个答案:

答案 0 :(得分:2)

  

是否可以延迟显示下拉列表扩展,直到AJAX调用完成?

没有。您无法控制选择的内部行为。大多数浏览器都不允许您以编程方式触发打开的点击。

考虑使用由div制作的虚假选择。

答案 1 :(得分:0)

我认为你有2个选项 - 1 - 确保在AJAX调用完成后触发事件,或者激活事件在AJAX调用完成后调用的代码,或者2 - 在事件中输入setTimeout并估计拨打电话所需的时间。

答案 2 :(得分:0)

你也可以作弊:onclick,用一个只是说“正在加载...”的选项替换选项,让它正常显示。然后,当您拥有正确的数据时,将其放入选择中并使其显示下拉列表,如有必要,再次触发点击事件。

这有意义吗?