美文网首页
Input输入框历史记录

Input输入框历史记录

作者: 婆娘漂亮生活安逸 | 来源:发表于2019-12-24 10:42 被阅读0次

1. 背景介绍


我们时常在<input />获取焦点时,发现有些<input />会自动把之前输入过的历史记录展示出来,例如像这样的:


但是呢,有些<input />又不会啊,查阅资料后,总结出以下三种情况:

为了提供自动完成功能,用户代理可能需要<input>/<select>/<textarea> 元素才能:
1. 具有 name 和/或 id 属性
2. 成为 <form> 的后代
3. 具有 submit 按钮的表单

详见《The HTML 自动完成属性》,这边不在做过多讲述,因为今天的重点不在这里。

2. 如何配置历史记录值


方式一(不推荐)

你可以在<input />onfoucs事件,手动给它弄出个弹框,再将预先想要选择的options罗列出来,然后点击每个值触发的onclick事件,再给<input />设置值。
好像大体上实现了这个功能,但是成本太大了,还有一系列css样式,全部需要自己写。
so,deprecate it !!!

方式二(推荐)
<label>Name</label><input id="country_name" name="country_name" type="text" list="city" />
<datalist id="city">
    <option value="中国 北京" />
    <option value="中国 上海" />
    <option value="中国 广州" />
    <option value="中国 深圳" />
    <option value="中国 东莞" />
</datalist>

兴致勃勃拿去代码一试,看到效果如下:

一脸苦恼,怎么出现了一个奇怪的三角形?怎么还出现以前的输入框的历史记录了?

解决方案一并给你~

  1. 解决输入框以前的历史记录(给input添加autocomplete属性,值为off)
    <input autocomplete="off" />
  2. 解决三角形(在你的style文件里添加以下样式)
    input::-webkit-calendar-picker-indicator{ display: none; -webkit-appearance: none; }

相关文章

网友评论

      本文标题:Input输入框历史记录

      本文链接:https://www.haomeiwen.com/subject/coaznctx.html