【发布时间】:2019-11-22 22:25:43
【问题描述】:
我有一个连接到包含自动完成建议的数据列表的 html 输入字段。
<input type="search" id="input-search" class="form-control" name="searchfield" list="autocompleteitems">
<datalist id="autocompleteitems">
</datalist>
当在搜索栏中按下一个键时,数据列表通过 javascript ajax 调用获取其内容。
我的自动完成建议还包含我想要显示的同义词。这会导致以下示例中显示的问题。假设我想搜索“apple”并在搜索栏中输入apì。 ajax请求得到一个结果列表,并按如下方式放入我的datalist中:
<datalist id="autocompleteitems">
<option value="apple"></option>
<option value="fruit"></option>
<option value="apples"></option>
</datalist>
我想要的是对这三个项目(苹果、水果苹果)的建议。因为fruit 不以ap开头,所以会被踢出,只建议apple和apples。
有没有办法阻止 html/浏览器过滤那些不是以搜索框中的文本开头的项目?
编辑 评论中链接的 stackoverflow 帖子显示了如何在搜索字段上设置过滤器。但是 Firefox 会自动过滤,我的问题是如何不过滤结果。
示例:
我在搜索字段中输入ap。
我的 ajax 请求返回 apple 和 fruit 并将其写入数据列表中。
现在 firefox 建议 apple,但将 fruit 扔掉,因为它不是以 ap 开头的。
我想要的是这两个词都是建议 - apple 和 fruit
【问题讨论】:
-
@BanujanBalendrakumar 感谢您的回答,基本上使用 jquery-ui 的自动完成功能,我可以让它工作。更好的解决方案是使用基本的 jquery 功能来调用过滤。最佳是我可以在输入标签中设置的标志,但我怀疑它是否存在......
-
@epascarello 我想避免将
jquery-ui.js用作要包含的额外库。但如果这是唯一的出路,我会这样做。谢谢。 -
我的意思是你可以自己编写代码而不使用库
标签: javascript html