我在 Chrome 和 Firefox 对 HTML5 datalist 元素的处理之间出现了一个问题。
我可能正在滥用它,Firefox 正在以我期望的方式处理它,但 Chrome 不是。我还没有在 Opera 上尝试过。这是一个内部页面,所以我可以控制正在使用的浏览器。
我设置了一个值以及内部文本,如下所示:
<input list="Names" placeholder="Enter Name or ID" name="txtSearchValue" autocomplete="off"/>
<datalist id="Names"><%=OptionsList%></datalist>
服务器端值“OptionsList”是从数据库查询中动态构建的。最终结果大致如下所示:
<option value="123">Sam's Fresh Sandwiches</option>
<option value="234">Sawatdee</option>
等等
在 Firefox 上,我可以输入字母“S”,然后输入“A”(不区分大小写),上述两个条目都会出现。只要我键入“W”或用鼠标选择 Sawatdee,文本框就会填充 234。这就是我希望发生的事情 - 因为我希望将 234 发送回服务器而不是 Sawatdee。如果我输入“A”然后输入“T”,它也可以工作。
在 Chrome 上,我可以输入我想要的所有字母,但列表中不会出现任何内容。但是,如果我输入 2,则只会出现第二个条目;但在列表中它会显示一个 2,然后是 Sawatdee。
我是过度使用/滥用数据列表还是 Chrome 有问题?或者 Chrome 是否按照技术上应该的方式处理它并且我发现了一个 Firefox 错误?