如何在html中继续使用datalist元素时关闭自动完成
我有一个如何在html中继续使用datalist元素时关闭自动完成,html,autocomplete,browser-history,html-datalist,Html,Autocomplete,Browser History,Html Datalist,我有一个输入字段,显示使用html5元素的列表。问题在于,使用浏览器自动完成功能也会显示历史记录列表(这是以前键入的值的列表,不包括在中)。所以我只想去掉历史记录列表,而不是 如果我使用autocomplete=“off”功能,这也会阻止 简而言之,我只想要而不是历史版本。试试这个,我希望它能起作用 <input id="datalisttestinput" list="stuff" autocomplete="off">&
输入
字段,显示使用html5
元素的列表。问题在于,使用
浏览器自动完成功能也会显示历史记录列表(这是以前键入的值的列表,不包括在
中)。所以我只想去掉历史记录列表
,而不是
如果我使用autocomplete=“off”
功能,这也会阻止
简而言之,我只想要
而不是历史版本。试试这个,我希望它能起作用
<input id="datalisttestinput" list="stuff" autocomplete="off"></input>
<datalist id="stuff">
<option id="1" value="Amy">
<option id="2" value="Kristal">
<option id="3" value="Collin">
<option id="4" value="Carl">
</datalist>
我使用这样的代码:
<input name="anrede" list="anrede" onmousedown="value = '';" />
<datalist id="anrede">
<option value="Herr"></option>
<option value="Frau"></option>
</datalist>
良好:显示供选择的数据列表已完成
错误:输入字段为空,
因此,未记录旧值,
如果用户需要记住是否可以使用不带
id
或name
属性的输入
字段?否则,浏览器就无法将历史与该元素相关联
在我对Firefox的快速测试中,这似乎起到了关键作用:
<form>
<!-- these will remember input -->
With id: <input id="myInputId" list="myList" /><br />
With name: <input name="myInputName" list="myList" /><br />
<!-- these will NOT remember input -->
No id, name, class: <input list="myList" /><br />
With class: <input class="myInputClass" list="myList" />
<datalist id="myList">
<option value="Option 1"></option>
<option value="Option 2"></option>
</datalist>
<br />
<input type="submit" />
</form>
id为:
名称:
没有id、名称、类别:
课堂上:
在上面的代码中,带有id
或name
的input
会记住过去的值,但是input
没有任何内容,而只有类的input
不会记住任何内容
不幸的是,如果您需要
输入名
或id
,则使用输入会稍微困难一些。在这种情况下,我会尝试使用id
'edinput
,它也是display:none
'ed,然后使用一些JavaScript使它与不记得过去值的input
保持同步。尝试使用HTML属性autocomplete
<input name="q" type="text" autocomplete="off"/>
来源试试这个:
<datalist id="datalist_id">
这将清除数据列表的历史记录。这在chrome上对我有效。
然后,如果要向列表中添加选项,请尝试:
dataList.append("<option>Some Option</option>")
dataList.append(“某些选项”)
干杯 您可以使用autocomplete=“新密码”。autocomplete=“off”在我的情况下不起作用
<input name="q" type="text" autocomplete="new-password"/>
啊,好建议。事实上,我刚刚意识到,在我自己的问题上,我实际上解决了同样的问题,方法是使用
,并在实际输入中省略名称。我将它们与一个简单的jquery保持同步:@StephanMuller是的,这正是我所想的!有趣的建议,有人能证实同样的方法是否也适用于Chrome吗?我想即使是chrome也会根据chrome中测试的ID记忆历史,并且它的工作原理与广告中的一样。然而,我的HTML是从JSP生成的,我不能避免使用“name”属性,因为映射需要它。任何其他解决方案?在最新版本的Firefox(50)和Chrome(55)中,在输入上使用autocomplete=“off”
具有预期的行为:它禁用历史记录,但显示datalist
选项。谢谢!这将教会我首先阅读文档:op确实说过他们使用了autocomplete
属性。。。提交表单后,它会记住以前选择的数据列表值,尽管“自动完成”处于“关闭”状态。我刚刚在firefox 62.0.3I下面对它,我发现在Chrome中,根据输入和/或数据列表的名称,它仍然在底部提示错误的东西。字段名medNames在底部显示了一些我的名字组合。通过对自动完成值使用datalist id,可以防止出现这种情况。这是最简单也是最好的解决方案。我没有像OP那样面对问题;使用list=“datlistID”
连接输入。(我还使用占位符表示旧值)如果您想为用户记住输入值,请将该值也放在占位符=“value”-中,这样对用户有点帮助;-)我也有这个问题。似乎是疏忽没有包括消除这两者之间歧义的方法。我没有遇到阻止datalist
的问题。在Firefox 63.0.3和Chromium 70.0.3538.110下进行检查。使用autocomplete=“off”
一切正常这是最好的答案,因为它只显示了实际的数据列表选项以及以前键入的数据列表选项。但是,我使用数据列表的名称/id作为自动完成值。不确定新密码来自何处
<input name="q" type="text" autocomplete="new-password"/>