搜索
首页web前端css教程使用HTML5数据师轻量级自动完成控件

使用HTML5数据师轻量级自动完成控件

在本教程中,我们将深入了解少量使用的HTML5 元素。它可以实现不需要JavaScript的轻巧,易于访问,跨浏览器自动完成的表单。

钥匙要点

    html5`
  • `元素为自动完整的表单控件提供了轻巧,易于访问和跨浏览器解决方案,而无需依赖JavaScript。 > `,````````````'>```````'
  • 浏览器对
  • `在包括Internet Explorer 10和11在内的现代浏览器中具有强大的功能,其中可用于旧浏览器的后备选项使用`>'和文本输入的组合。 🎜> `元素不能直接用CSS来设计,该元素可以限制自定义,但可以确保在不同的浏览器和平台上保持一致性。
  • >诸如Ajax之类的增强功能可以与``>''>
  • 控件是理想的选择。它们在以下情况时不太实用:
  • 有很多选择,例如国家或职位标题
  • 用户想要输入自己的选项,该选项不在列表中>

明显的解决方案是自动完成控制。这允许用户输入几个字符,该字符限制了可快速选择的选项。>

>

边缘仅显示值。

>
  • 以下codepen示例显示了所有变体:
  • >请参阅pen
  • html5 sitepoint(@sitepoint)
  • 上的自动完成示例。

实现将不断发展,但目前,我建议您不要使用价值和标签,因为它可能会使用户混淆。

(下面讨论了解决方法。)


>
浏览器支持和后备

元素在现代浏览器以及Internet Explorer 10和11中得到了很好的支持

>

有几种实施说明,但不会影响大多数用法。最糟糕的情况是一个字段恢复为标准文本输入。

如果您绝对必须支持IE9及以下,则有一个后备模式,该模式在失败时使用标准>

请参阅pen
html5 sitepoint(@sitepoint)
上的自动完成后返回。

>

在现代浏览器中,元素成为的一部分,而”或其他标签未显示。它看起来与上面的示例相同,但是乡村的形式值将设置为一个空字符串。 在IE9及以下,(非常长的)盒子,
…您很容易!
可以将其视为正常的样式,但是链接的及其子元素不能在CSS中进行样式。列表渲染完全由平台和浏览器确定。

> 我希望这种情况能有所改善,但是目前,在MDN提出了一种解决方案,该解决方案:

覆盖默认浏览器行为

>有效地对待

,因此可以在CSS 中进行样式 重复JavaScript中的所有自动完整功能

>我已经进一步增强了它,并且代码可在GitHub上使用。要使用它,请作为ES6模块中的HTML页面中的任何位置加载脚本。可以使用JSDELIVR CDN URL:

<span><span><span><datalist> id<span>="countrydata"</span>></datalist></span>
</span>  <span><span><span><option>></option></span>Afghanistan<span><span></span>></span>
</span>  <span><span><span><option>></option></span>Åland Islands<span><span></span>></span>
</span>  <span><span><span><option>></option></span>Albania<span><span></span>></span>
</span>  <span><span><span><option>></option></span>Algeria<span><span></span>></span>
</span>  <span><span><span><option>></option></span>American Samoa<span><span></span>></span>
</span>  <span><span><span><option>></option></span>Andorra<span><span></span>></span>
</span>  <span><span><span><option>></option></span>Angola<span><span></span>></span>
</span>  <span><span><span><option>></option></span>Anguilla<span><span></span>></span>
</span>  <span><span><span><option>></option></span>Antarctica<span><span></span>></span>
</span>  ...etc...
<span><span><span></span>></span>
</span></span></span></span></span></span></span></span></span></span></span>

>,如果您使用的是捆绑器:,则可以使用NPM安装它:

<span><span><span><label> for<span>="country"</span>></label></span>country<span><span></span>></span>
</span>
<span><span><span><input> type<span>="text"</span>
</span></span><span>  <span>list<span>="countrydata"</span>
</span></span><span>  <span>id<span>="country"</span> name<span>="country"</span>
</span></span><span>  <span>size<span>="50"</span>
</span></span><span>  <span>autocomplete<span>="off"</span> /></span>
</span></span></span>
>您的元素必须使用 value 格式。例如:

<span><span><span><datalist> id<span>="mylist"</span>></datalist></span>
</span>  <span><span><span><option>></option></span>label one<span><span></span>></span>
</span>  <span><span><span><option>></option></span>label two<span><span></span>></span>
</span>  <span><span><span><option>></option></span>label three<span><span></span>></span>
</span><span><span><span></span></span></span></span></span></span></span>
> >

注意:无法使用,因为它会导致无法定型的空元素!> 然后可以添加

CSS以样式一些或全部和元素。例如:

<span><span><span><datalist> id<span>="mylist"</span>></datalist></span>
</span>  <span><span><span><option> value<span>="label one"</span> /></option></span>
</span>  <span><span><span><option> value<span>="label two"</span> /></option></span>
</span>  <span><span><span><option> value<span>="label three"</span> /></option></span>
</span><span><span><span></span></span></span></span></span></span></span>
> >示例:

>请参阅pen

html5 autocomplete css findling by sitepoint(@sitepoint)
> codepen。

>造型有效,但是值得付出努力吗?

我不怀疑……

>

>重新实现浏览器的标准键盘,鼠标和触摸控件,并具有合理的可访问性。 MDN示例不支持键盘事件,尽管我试图改进该事件,但某些设备上不可避免地会有问题。
    >
  • >您依靠200行JavaScript来解决CSS问题。它的缩小为1.5kb,但是如果您在同一页面上需要许多元素,则可能会引入性能问题。
  • 如果JavaScript是必需的,最好使用更漂亮,更一致,经过战斗测试的JavaScript组件?
  • >当JavaScript失败时,控件返回到标准的HTML5 而无需样式,但这是一个较小的好处。
  • >
创建AJAX-增强

>假定您的设计师很乐意接受浏览器样式差异,可以使用JavaScript增强标准功能。例如:

实现可选验证,该验证仅接受中的已知值

set > Åland Islands> Albania> Algeria> American Samoa> Andorra> Angola> Anguilla> Antarctica> ...etc...
>

不需要设置resultdata属性,因为这是返回的唯一数据(没有包装器对象)。结果名称属性必须设置为“名称”,因为该属性用于填充Datalist

datalist-ajax如何工作

如果您不想阅读230行代码并保持魔术的活力!
<span><span><span><label> for<span>="country"</span>></label></span>country<span><span></span>></span>
</span>
<span><span><span><input> type<span>="text"</span>
</span></span><span>  <span>list<span>="countrydata"</span>
</span></span><span>  <span>id<span>="country"</span> name<span>="country"</span>
</span></span><span>  <span>size<span>="50"</span>
</span></span><span>  <span>autocomplete<span>="off"</span> /></span>
</span></span></span>

>代码最初在中创建一个新的,它使用列表属性将其连接到子。输入事件处理程序监视并在输入最小数量的字符并且用户仍未键入时调用runquery()函数。> > runquery()从表单中的数据中构建API URL,并使用fetch api进行AJAX调用。解析返回的JSON,然后构造一个可重复使用的DOM片段,并将其放置在缓存中。>

> datalistupdate()函数被调用,该函数用适当的缓存DOM片段更新。如果查询已经被缓存或可以使用以前的查询,请访问runquery()避免访问ajax调用。

>

>更改事件处理程序还监视,当焦点从字段移动并且值已修改时,它会触发。该函数检查该值是否匹配已知选项,并在必要时使用约束验证API显示在有效属性中提供的错误消息。

>假设已经选择了有效的选项,则使用匹配的数据AUTOFILL属性将更改处理程序函数填充所有字段。保留对自动填充字段的引用,以便如果随后输入无效的选项,则可以重置它们。

>

请注意,Shadow dom是

未使用的。这样可以确保自动完成(和)元素可以由CSS进行样式,并在必要时由其他脚本访问。 dunkin’ > HTML5 有局限性,但是如果您需要简单的框架 - 无术自动完整字段,则是理想的选择。缺乏CSS支持是可耻的,但是浏览器供应商最终可能会解决该监督。

>本教程中显示的任何代码和示例均可用于您自己的项目。 使用HTML5 Datalist

>什么是HTML5 DataList元素,它如何工作?>>我如何将html5数据级使用html5 datalist用于autoComplete?

需要将数据师与输入字段相关联。这是通过将列表属性添加到输入字段并将其值设置为数据师ID来完成的。然后,浏览器将根据用户的输入和Datalist中的定义选项建议自动完成选项。

>我可以在所有浏览器中使用HTML5 DataList元素吗?

大多数现代浏览器,包括Chrome,Firefox,Safari和Edge。但是,Internet Explorer 9和更早版本中不支持它。您可以在网站上查看当前的浏览器兼容性,例如我可以使用。

>

>不幸的是,我如何设置HTML5 DataList选项?

,HTML5 DATALIST元素的样式选项非常有限。下拉列表的外观由浏览器控制,无法通过CSS自定义。但是,您可以为与数据师关联的输入字段进行样式。

>

>我可以将多个数据师用于单个输入字段吗?

不,您不能将多个数据师与单个输入字段相关联。输入字段的列表属性只能采用一个ID,该ID与一个数据库相对应。如果您需要提供多组选项,则可能需要使用JavaScript根据用户输入动态更改选项。

>

>我可以将HTML5 Datalist与其他输入类型一起使用吗? ,HTML5 DataList可以与各种输入类型一起使用,包括文本,搜索,电话,电子邮件,日期,月,每周,时间,时间,日期,本地,数字,范围,范围和颜色。但是,对某些输入类型(例如范围或颜色)的自动完成功能可能无法正常工作。

我可以使用SELECT元素使用HTML5 Datalist?与选择元素一起使用。数据师旨在为输入字段提供自动完成建议,而SELECT元素提供了选项的下拉列表。如果您需要下拉列表,则应使用Select element。删除或更改选项。但是,请记住,数据师不支持Onchange或OnClick之类的事件。您需要将事件侦听器添加到关联的输入字段中。

>我可以将HTML5 DataList用于搜索字段吗?

我可以使用textarea的html5数据库来使用html5 dataList?

不,html5 dataList不能与textarea一起使用。 。数据师旨在为输入字段提供自动完成建议,而不是针对文本方面的建议。如果您需要用于文本方面的自动完成功能,则可能需要使用JavaScript库或构建自己的解决方案。

以上是使用HTML5数据师轻量级自动完成控件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Flexbox vs Grid:我应该学习两者吗?Flexbox vs Grid:我应该学习两者吗?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

轨道力学(或我如何优化CSS KeyFrames动画)轨道力学(或我如何优化CSS KeyFrames动画)May 09, 2025 am 09:57 AM

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。

CSS动画:很难创建它们吗?CSS动画:很难创建它们吗?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

CSS计数器:自动编号的综合指南CSS计数器:自动编号的综合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用卷轴驱动动画的现代滚动阴影使用卷轴驱动动画的现代滚动阴影May 07, 2025 am 10:34 AM

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

重新访问图像图重新访问图像图May 07, 2025 am 09:40 AM

让我们快速进修。图像地图一直返回到HTML 3.2,首先是服务器端地图,然后使用映射和区域元素通过图像上的单击区域定义了可单击区域。

DEV状态:每个开发人员的调查DEV状态:每个开发人员的调查May 07, 2025 am 09:30 AM

开发委员会调查现已开始参与,并且与以前的调查不同,它涵盖了除法:职业,工作场所,以及健康,爱好等。 

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),