AngularJs表单类型和浏览器兼容性

时间:2014-07-20 21:33:13

标签: html5 forms angularjs

关于AngularJs的问题,我似乎无法用谷歌来解决这个问题,而是与Angular处理表单和表单验证的方式有关。

理想情况下,我想让我的表单跨浏览器兼容,并使用处理表单的'Angular-way'。通常会在表单标记上设置novalidate属性,因为这会禁用浏览器想要执行的任何与html5相关的表单验证。

但是,这就是问题:这是否也意味着Angular处理输入的方式,比如,type =“email”,浏览器是否会忽略它们? Angular是否保护用户输入格式正确的电子邮件而不是浏览器的输入type =“email”字段的实现?因此Angular也会掩盖输入吗?

我问,因为有几种有用的类型(如电子邮件和网址)并不是严格的跨浏览器,但我真的想用Angular的好东西制作一个通用的表单。

1 个答案:

答案 0 :(得分:5)

答案取决于您希望验证的内容。以email字段为例。如果查看the quirks documentation,您会看到字段类型的自动验证在除IE9和Sarafi之外的大多数浏览器中都有效。将角度置于混合中根本不会改变这一点,因此您的标准验证在所有浏览器中都不起作用。

也就是说,Angular实际上是通过模型绑定将字段的值绑定到变量。所以它并不完全依赖浏览器验证,但实际上提供了自己的验证。我检查了this page,甚至在Safari for Mac上,验证也很有效。即使考虑到这一点,我仍然建议打开the plunker并尝试在您真正需要支持的所有浏览器上验证哪些字段。

最后一个想法是Angular本身不再与IE8兼容。尽管该团队并不打算打破IE8,但他们不再在其中进行测试(详情请See here)。换句话说 - 如果您需要真正的旧浏览器支持,您将不得不自己测试一下!