【发布时间】:2020-08-05 09:59:04
【问题描述】:
我有一个输入字段,其中包含一个大型(10000 项)数据列表作为自动完成源。数据列表是从服务器端动态生成的。
<input type="text" name="medicine" required="" list="list__medicine-list" id="id_medicine" class="form-input mb-4">
<datalist id="list__medicine-list">
<option value="1stCef (Cefadroxil Monohydrate)" medicine_id="1"></option>
<option value="2ndCef (Cefaclor Monohydrate)" medicine_id="2"></option>
<option value="3-C (Cefixime Trihydrate)" medicine_id="3"></option>
<!-- -->
<!-- -->
<!-- -->
<option value="Zinc (Zinc Sulphate)" medicine_id="11303"></option>
</datalist>
我可以在输入字段中输入,它会使用输入的字符自动完成。但它会在中间匹配,而不是根据我在输入字段中输入的内容对数据列表进行排序。
我想对数据列表项进行排序,以便它显示匹配的首字母(对于示例图像,它将硫酸锌带到顶部)。如何在不使用自定义 javascript 对服务器进行 ajax 调用的情况下做到这一点?
【问题讨论】:
-
您发布的 sn-p 至少已经在我的浏览器上执行此操作(Chrome)
-
你图片中的所有物品都含有硫酸锌,所以我认为结果是正确的。
-
您需要按相关性排序,而不是按字母顺序。在这种情况下可行的快速而肮脏的方法是获取匹配字符串的索引(在目标项中为 0)并按此排序。
-
@SMAKSS 是的,先生。这在某种意义上是正确的,但我想将与项目开头匹配的项目移动到列表顶部。
标签: javascript html jquery jquery-select2