您可能已经在Web上的某处遇到了这种响应: 在输入表单中输入内容时,建议列表会出现在输入内容的底部

多年来,我们依靠JavaScript来创建这样的功能。 今天,我们可以使用新的HTML5 <datalist>元素来做到这一点。 这个HTML5新元素允许我们存储选项列表,这些选项列表将在用户在输入中键入时显示。

HTML5列表属性

可以使用新HTML5属性list<datalist>链接到<input>元素。 我们可以在几种输入类型(例如textsearch使用list 。 但是,根据Mozilla开发人员网络 , list属性不适用于以下输入类型: hiddencheckboxradiofilebutton

在以下示例中,我们使用<datalist>添加城市列表,并为其分配ID属性,如下所示。

<datalist id="city"><option value="Adelaide"><option value="Bandung"><option value="Bangkok"><option value="Beijing"><option value="Hanoi"><option value="Ho Chi Minh City"><option value="Hong Kong"><option value="Jakarta"><option value="Kuala Lumpur"><option value="Osaka"><option value="Seoul"><option value="Shanghai"><option value="Singapore"><option value="Surabaya"><option value="Sydney"><option value="Tokyo">
</datalist>

要将<datalist>挂接到<input>元素,只需添加list属性并引用id属性,就像这样。

<input class="destination-list" type="text" placeholder="From:" list="city">
<input class="destination-list" type="text" placeholder="To:" list="city">

浏览器行为

另一方面,当我们单击输入两次时 ,它将显示所有可用选项,如下所示。

专注于输入内容时, Firefox将不显示任何内容。 它将显示包含我们键入的值的选项。例如,下面的屏幕截图显示了Firefox显示包含字母“ u”的选项。

结合使用HTML5数据列表和Polyfills

有一些polyfill可以在不受支持的浏览器中复制类似的功能。 在本文中,我们将实现Michael Taylor的数据列表polyfills 。 要使用它,我们将需要jQuery和Modernizr来进行浏览器功能检测。

至于Modernizr,我们必须进行一些自定义。 在Modernizr下载页面中 ,检查以下选项。

  • HTML5部分下的输入属性
  • 可扩展性部分下的Modernizr.addTest
  • Extra部分下的Modernizr.load
  • 非核心检测下的elem-datalist

现在,让我们打开HTML文档,在其中添加<datalist>元素,并添加刚刚在<head>部分下载的Modernizr库。

<script src="js/modernizr.js" type="text/javascript"></script>

添加Modernizr之后,我们可以使用以下脚本测试浏览器是否支持datalist元素。

if (!Modernizr.datalistelem) {alert('This browser does not support HTML5 datalist element, so we will load the polyfills');
}

不支持datalist元素时,上面的脚本将显示一条警报,提示“此浏览器不支持HTML5数据列表元素,因此我们将加载polyfills” 。 在Safari中,它看起来像这样。

接下来,创建一个名为load.datalist.js的新JavaScript文件,并在下面添加此行。 这会将脚本定向到具有list属性的输入并将其运行。

$('input[list]').datalist();

最后,我们将使用Modernizr.load加载jQuery, jquery.datalist.jsload.datalist.js ,如下所示。

Modernizr.load({test: Modernizr.datalistelem,nope: ['js/jquery.js', 'js/jquery.datalist.js', 'js/load.datalist.js']
});

因此,仅在浏览器不支持<datalist>元素时才加载它们。

就这样,现在您可以查看正在运行的演示或从下面的链接下载源文件。

  • 观看演示
  • 下载源

更多资源

以下是一些可以进一步深入研究该主题的资源。

  • HTML5数据列表元素,其他控件的预定义选项 – W3.org
  • HTML5数据列表 – David Walsh
  • 动态HTML5数据列表控件的示例 – Raymond Camden

翻译自: https://www.hongkiat.com/blog/html5-datalist/

柴静调查:穹顶之下_调查:HTML5数据列表相关推荐

  1. 柴静-雾霾调查 穹顶之下

    <穹顶之下>(全名为<柴静雾霾调查:穹顶之下 同呼吸 共命运>)是由媒体人柴静于2015年2月底推出关于中国空气污染的一部调查片. 下载链接: 看了之后,感觉这片会被禁,便从爱 ...

  2. 柴静雾霾调查:穹顶之下 同呼吸共命运

    转载于:https://www.cnblogs.com/mrpod2g/p/4307834.html

  3. 跟柴静的《穹顶之下》学习演讲的十大技巧

    跟柴静的<穹顶之下>学习演讲的十大技巧 柴静是如何用一次演讲感召了全国三亿人!她的演讲中又有哪些秘密呢?今天就跟小编一起来看!免费关注微信公众号 jiarenorg ,就能天天收到佳人精彩 ...

  4. 实地审核和系统审核_调查资料的审核_社会调查与统计

    调查资料的审核_社会调查与统计 第一节 调查资料的审核 数据资料的审核是资料处理的第一步工作.它指研究者对调查所回收的原始资料(主要是问卷)进行初步的审查和核实,校正错填.误填,剔除乱填.空白和严重缺 ...

  5. [附源码]Python计算机毕业设计调查问卷及调查数据统计系统

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  6. [附源码]Python计算机毕业设计调查问卷及调查数据统计系统Django(程序+LW)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  7. 计算机调查应用表格,大学计算机实验课_调查报告_表格模板_应用文书.doc

    大学计算机实验课_调查报告_表格模板_应用文书 掠印食旗窄钙敬酮鲜补土寓戈行手彝实桨肇如苗抵讯辰蜜巨交连沈萧咖的哄铜邑冻芯淆咐俘搜挨傅得系魔湘厩辱极名刘卤绚檬跃隧阁豹钉悄捷勃扩置臼哀匿搏扦开衣即奎盼狙 ...

  8. Python-Django毕业设计调查问卷及调查数据统计系统(程序+Lw)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  9. [附源码]JAVA+ssm计算机毕业设计调查问卷及调查数据统计系统(程序+Lw)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. 在Intelij IDEA中修改maven为国内镜像(阿里)
  2. 分享一下收到的微软CRM云分享计划 邮件
  3. gnujaxp.jar与struts2中的xwork核心包冲突
  4. HTMLTestRunner 为什么用PyCharm(Eclipse)执行测试成功但无法生成报告
  5. AngularJS $http 异步后台无法获取请求参数
  6. java 门面模式_Java门面模式
  7. 实验11 编写子程序
  8. S​D​I​与​A​S​I 接口详解介绍
  9. c#的IList,IEnumerable和IEnumerator
  10. java visibility_浅析Android中的visibility属性
  11. 【POJ2406】Power Strings(hash/kmp)
  12. 一个功能块实现PLC与安川机器人以太网通讯
  13. FineReport.10 一(帆软)(报表基础练习)
  14. 南昌大学大一C语言程序试卷,南昌大学C语言题库
  15. MATLAB求解偏导数
  16. java.nio.channels.NotYetConnectedException: null
  17. 风云四(FY-4)气象卫星 tif文件解析成txt
  18. echarts散点图使用(转:http://www.suchso.com/UIweb/echarts-sandiantu.html)
  19. JS clientX、offsetX、pageX、screenX
  20. 做人十条原则 做到了就离成功不远了

热门文章

  1. matlab应用最简差分格式,泊松方程有限差分格式的构造以及MATLAB实现.docx
  2. 裸金属服务器开通原理
  3. zuiqingchun4
  4. 如何生成SHA2常数序列
  5. anbox 使用情况_Anbox 实现分析 2:I/O 模型
  6. .xz是什么文件怎么解压_如何解压缩 tar.xz 文件
  7. linux解压时的tar -zxvf是什么意思?
  8. 数据库原理(三):Sql Server操作语句
  9. linux延时函数及头文件,linux延时函数
  10. 终端操作GitHub代码以及代码的版本控制(develop/master)多图