我的表单上有一个输入元素,可以接受日期/时间。它有验证以检查它是否是有效的日期/时间。该字段的默认值是当前日期和时间。使用Chrome时,我可以多次更改此输入框的值,只要它是有效的日期和时间就可以接受。但是,在IE 11中,如果我将其更改为另一个有效日期/时间,则表示无效值,并且不允许表单保存。
日期/时间字段:
input#transit_date_arrived.form-control.date-time-picker(name='transit_date_arrived', ng-model='vehicle.transit_date_arrived', type='datetime')
在车型中:
transit_date_arrived: {
type: sequelize.DATE,
allowNull: true,
validate: {
isDate: true
}
},
如果有人知道如何使用Internet Explorer,我真的很感激,谢谢!
答案 0 :(得分:1)
IE和angularJS的一个问题(事实上,可能不仅仅是a.JS)是标记为invalid
的字段在输入,标记或以其他方式与之交互时也会自发变为“脏”。显然,当验证重置字段时,这也适用,并且在第二次交互时也会发生相同的情况。
根据一些问题和一些研究,验证实际上在IE中非常破碎。例如,在this link,无法在文字空字符串和无效字符串之间进行确定。
This link显示了作者在实际日期验证中遇到的一些问题,包括错误处理和错误日期解决。不幸的是,他的代码破坏了“真实”日期的定义 - 即0000.00.00将被识别为有效日期,仅由于其格式化。
有一个日期验证here的示例,您可能希望用它来附加您的代码。特别是,您可能希望使用$valid
和$error.required
。
这里还有一个非常丑陋的code,它打算允许以4步形式进行验证。