带有远程数据加载的jQuery Select2:显示选项而不是占位符

时间:2016-10-13 14:22:24

标签: javascript jquery jquery-select2 select2

我使用Select2作为自动建议。这意味着,我通过ajax从远程源获取选项。这非常有效。

现在,客户希望在开始输入之前加载所有选项。这种方式违背了汽车建议的目的,但如果他想要这样,他就会拥有它。

无论如何,我需要在用户开始输入之前显示前50或100个元素,在第三个输入字符之后,Select2输入应该再次获取选项。

我尝试使用选项值预先填充select(例如“aa”,“bb”和“cc”),但它只显示占位符。用户点击选择后是否可以立即发送请求?这也是可能的,因为远程源可以发回前50个结果。如果有人能引导我朝着正确的方向前进,我将感激不尽:)

1 个答案:

答案 0 :(得分:0)

如果有人遇到同样的问题,可以快速解决问题:

  1. 将“minimumInputLength”设置为0.这样,只要用户打开Select2输入元素,就会发送请求。搜索参数当然是一个空字符串。

  2. 在“processResults”函数中添加一个允许分页的逻辑。返回的对象需要一个带有名为“loadMore”的布尔成员的“pagination”属性。您可以在此处详细了解:https://stackoverflow.com/a/29022107/430997 这样您就可以启用无限滚动。当然,您也需要支持服务器端的分页结果。

  3. 您可以选择从不同位置获取来源。 ajax选项的“url”参数可以是一个函数。如果要根据字符数调用不同的端点(主要是检查,如果字符数为0),可以在url函数内检查它并返回相应的端点。

  4. 这只是一种解决方法,只能模拟初始值。如果有人对我的问题有真正的答案,请发布:)