【问题标题】:AngularJs form types and browser compatibilityAngularJs 表单类型和浏览器兼容性
【发布时间】:2014-09-11 08:51:45
【问题描述】:

关于 AngularJs 的问题,我似乎无法通过谷歌搜索解决,这与 Angular 处理表单和表单验证的方式有关。

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

但是,事情就是这样:这是否也意味着 Angular 会处理输入的方式,比如 type="email" 并且浏览器会忽略它们吗? Angular 是否会保护用户输入格式正确的电子邮件而不是浏览器对 input type="email" 字段的实现这一事实?因此 Angular 也会屏蔽输入吗?

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

【问题讨论】:

    标签: html forms angularjs


    【解决方案1】:

    答案在一定程度上取决于您希望验证做什么。以email 字段为例。如果您查看the quirks documentation,您将看到字段类型的自动验证在大多数浏览器中都有效,除了 IE9 和 Sarafi。将 Angular 加入其中并不会改变这一点,因此您的标准验证不适用于所有浏览器。

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

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

    【讨论】:

      猜你喜欢
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 2011-03-10
      相关资源
      最近更新 更多