IE 11无法识别有效输入

时间:2014-08-07 12:59:52

标签: angularjs internet-explorer-11

我的表单上有一个输入元素,可以接受日期/时间。它有验证以检查它是否是有效的日期/时间。该字段的默认值是当前日期和时间。使用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,我真的很感激,谢谢!

1 个答案:

答案 0 :(得分:1)

IE和angularJS的一个问题(事实上,可能不仅仅是a.JS)是标记为invalid的字段在输入,标记或以其他方式与之交互时也会自发变为“脏”。显然,当验证重置字段时,这也适用,并且在第二次交互时也会发生相同的情况。

根据一些问题和一些研究,验证实际上在IE中非常破碎。例如,在this link,无法在文字空字符串和无效字符串之间进行确定。

This link显示了作者在实际日期验证中遇到的一些问题,包括错误处理和错误日期解决。不幸的是,他的代码破坏了“真实”日期的定义 - 即0000.00.00将被识别为有效日期,仅由于其格式化。

有一个日期验证here的示例,您可能希望用它来附加您的代码。特别是,您可能希望使用$valid$error.required

这里还有一个非常丑陋的code,它打算允许以4步形式进行验证。