42

我有一个使用 html5元素input显示列表的字段。<datalist>问题是<datalist>浏览器自动完成功能还会显示历史列表(这是以前键入的值的列表,不包含在 中<datalist>)。所以我只想摆脱history-listnot <datalist>

如果我使用该autocomplete = "off"功能,这也会阻止<datalist>.

简而言之,我只想要不是<datalist>历史的。

4

6 回答 6

22

您是否可以使用input没有idorname属性的字段?没有它,浏览器实际上没有任何方法将历史记录与该元素相关联。

在我对 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>

在上面的代码中,input带有idor的 sname会记住过去的值,但input没有任何东西的 s 和只有 a 的输入class不会记住任何东西。

不幸的是,如果您需要使用or ,这确实会使使用input稍微困难一些。在这种情况下,我会尝试使用一个也是' ed的 'ed,然后使用一些 JavaScript 使其与不会记住过去值的同步。nameididinputdisplay: noneinput

于 2015-04-23T16:12:37.187 回答
10

尝试使用 HTML 属性自动完成

<input name="q" type="text" autocomplete="off"/>

关闭输入的自动完成

于 2016-04-20T09:21:11.260 回答
3

我使用这样的代码:

<input name="anrede" list="anrede" onmousedown="value = '';" />
<datalist id="anrede">
    <option value="Herr"></option>
    <option value="Frau"></option>
</datalist>

good : 显示供选择的数据列表已完成

bad:输入字段为空,因此如果用户需要记住旧值,则未记录旧值

于 2013-12-17T21:24:45.600 回答
3

你可以使用自动完成=“新密码”。autocomplete = "off" 在我的情况下不起作用。

<input name="q" type="text" autocomplete="new-password"/>
于 2019-07-16T17:17:38.060 回答
1

试试这个,我希望它有效。

<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>
于 2013-10-25T07:10:56.800 回答
-1

尝试这个:

<datalist id="datalist_id">

js:

dataList = $("#datalist_id")
dataList.empty()

这将清除数据列表的历史记录。这在 chrome 上对我有用。然后,如果您想向列表中添加选项,请尝试:

dataList.append("<option>Some Option</option>")

干杯!!!

于 2018-04-05T16:04:19.607 回答