【发布时间】:2015-04-08 11:09:57
【问题描述】:
我注意到 Firefox 中日期的表单验证存在问题,我将不胜感激任何建议或可用的解决方法。
日期验证问题
我正在使用 angularjs v1.3.11,我遇到的问题实际上与引导日期选择器有关,但是对于标准输入 type="date" 字段来说也是同样的问题。
如果我设置了无效的闰日,例如29/02/2013(en-GB 日期 - DD/MM/YYYY)使用引导日期选择器或输入 type="date" 字段 $valid 在该表单字段上报告为无效的文本字段所有浏览器都接受 Firefox。我真的希望它在每个浏览器上都报告为无效!
它似乎使日期无效,例如,如果我将完整的垃圾放入字段中,例如输入没有月份的日期,那么 29/2013 会在所有浏览器中正确地报告为无效我'已经测试过了。就好像 Angular 正在为 Firefox 运行一个特殊的正则表达式,它不关心日期的有效性,除了它有 3 组数字。
在 Angular 网站上查看此日期问题
如果您选择以下链接https://code.angularjs.org/1.3.11/docs/api/ng/input/input%5Bdate%5D,您将被带到 angulars 自己的 input[date] 中。
点击 firefox 中的链接 - 滚动到页面底部到他们在屏幕上显示的示例并输入无效日期,例如 2013 年 2 月 29 日(似乎需要 ISO此站点上 Firefox 的日期格式),您会看到它报告您输入的日期为有效,即使 2013 年 2 月 29 日不是闰年。
例如,如果您在 chrome 中执行相同的测试,那么您会看到它报告日期为 INVALID - 这是我希望发生的事情。
如何解决这个问题? 谢谢你,如果你能读到这里!我意识到这可能是特定浏览器如何处理日期的问题,尽管我已经进行了广泛的搜索,并且在 firefox 或 angular 中都没有发现任何列出的错误。
我在这里真正希望的是,有人可能知道一种解决方法,例如一种拦截在输入字段上确定 $valid 的调用的方法,以便我可以运行自己的正则表达式或类似的东西.如果有人知道为什么这在 Firefox 中如此奇怪,我也很想知道!
提前感谢任何人可以提供的任何帮助:)
林赛
【问题讨论】:
标签: javascript angularjs validation date firefox