我可以编写自己的html5输入类型吗?

时间:2015-02-27 08:19:04

标签: html5

新的HTML5输入类型和属性,即telemailpattern等,可用于向不显眼的javascript验证器指示应将哪些规则应用于给定字段。

但在某些情况下,规范中不存在的特定字段类型需要特殊算法。例如,input type="credit-card"会导致验证程序使用modulo10算法,模式匹配无法验证。

新的输入类型有效,因为旧的浏览器在不了解指定的类型时会回退到type="text"。据我所知,新浏览器似乎也遵循这一惯例。

由于已经存在语义正确的type属性,因此在某些时候使用单独的data-type=""属性以及在需要时使用官方type属性时看起来很混乱且不一致类型已存在。

我知道有一天可能会有一个同名的类型,但如果W3C在未来的某个时刻添加input type="credit-card",除了验证信用卡之外,还有什么可能做的事情? (换句话说,只要类型名称很好,唯一的冲突就是预期的目的。)

在我需要的时候简单地编写新的输入类型是否有任何陷阱?

1 个答案:

答案 0 :(得分:0)

我建议使用javascript框架,特别是如果你正在开始一个新项目。在这些框架中,您可以创建可重用的组件。例如,您可以定义信用卡组件,实现特定的验证和样式和逻辑,然后在整个应用程序中重用新组件。

在angular.js中,这是谷歌支持的最流行的javascript框架,它被称为指令: https://docs.angularjs.org/guide/directive

在ember.js中,它被称为组件。

信用卡示例的陷阱是尝试发明自己的正则表达式进行验证,或者找到一个实际上无法正常工作的糟糕正则表达式。但是在javascript框架中使用自定义Web组件是非常标准的。您还应确保您使用的任何精美javascript库与您要支持的任何浏览器和浏览器配置兼容。