【发布时间】:2015-03-19 20:58:13
【问题描述】:
(我找不到它,但是我真的不知道如何搜索它。)
我想使用<input list=xxx> 和<datalist id=xxx> 来获得自动补全,但我希望浏览器通过“包含”方法匹配所有选项,而不是“开始于”,这似乎是标准的。有什么办法吗?
如果不是简单的,有没有办法强制显示我想要显示的建议,而不是浏览器匹配的建议?假设我正在输入“foo”并且我想显示选项“bar”和“baz”。我可以将这些强加给用户吗?如果我只是用那些(使用 JS)填充数据列表,浏览器仍然会进行“开始于”检查,并将它们过滤掉。
我希望最终控制数据列表选项的显示方式。不是因为它的用户界面、灵活性、可访问性等,所以我不想完全改造它。甚至不建议使用 jQuery 插件。
如果我可以最终控制表单元素验证,为什么不能自动完成,对吧?
编辑:我现在看到 Firefox 确实使用了“包含”方法……这甚至不是标准??有什么办法可以强制吗?我可以改变 Firefox 的方式吗?
编辑:我这样做是为了说明我想要什么:http://jsfiddle.net/rudiedirkx/r3jbfpxw/
【问题讨论】:
-
没有帮助?难以置信……这是我需要使用数据列表时首先想到的。
-
问题是,数据列表不可编辑,至少在ie11中是这样。我得到这个错误:
0x800a13b5 - JavaScript runtime error: Assignment to read-only properties is not allowed in strict mode. -
@NinaScholz 你什么时候收到这个错误?分配什么给什么?你会做一个小提琴吗?
-
我采用了
innerHTML的方法。行得通。 -
当前版本的 Chrome 浏览器 (56) 已经将行为更改为“子字符串匹配”以适应当前规范和 Firefox 的行为。 (我没有测试过旧版本,但似乎这个变化是最近的)
标签: html autocomplete html-datalist