AngularJS日期验证(格式)

时间:2015-06-10 12:22:55

标签: angularjs angular-ui-bootstrap

我可以使用一些帮助。我的输入字段为type="text"ng-required="true"。我正在使用datepicker (Angular UI Bootstrap)

如果我的输入为空,someForm.someInput.$error会返回"required":true,这没关系。 如果我的输入内容为"someText"someForm.someInput.$error会返回"date":true,这对我来说很奇怪。

  1. 这是如何触发的,这是由指令datepicker完成的吗?我没有#=" date"什么的。*

  2. 我怎样才能以格式" dd.MM.yyyy"会有效吗?

  3. 如果我输入01.01.201501.13.2015 - 这似乎是有效的(没有"date":true),但显然它不是。 我猜当前的有效格式为"yyyy.MM.dd"

    注意:我也使用角度语言环境文件,如果这很重要。

2 个答案:

答案 0 :(得分:1)

我发现datepicker使用了两个值。一个用于模型,一个用于输入。如果您通过从弹出窗口中选择日期来输入日期,则此方法有效,但如果在输入字段中键入日期则无效。

我已经通过将readonly属性放入输入字段来解决了这个问题。

答案 1 :(得分:0)

在我的案例中(RoR和AngularJS),我在下次从服务器获取数据时将数据保存到服务器中,datepicker有{date:true}验证错误。

我做了什么来解决这个问题? 我没有发送iso8601格式字符串或UTC格式字符串,而是尝试返回毫秒格式

以下ruby中的示例将阐明在angular ui bootstrap datetimePicker上删除日期验证的内容。

my_object.my_timestamp # DID NOT WORK :-(
my_object.my_timestamp.iso8601 # DID NOT WORK :-(

my_object.my_timestamp.to_f * 1000 # WORKED :-)

希望这有帮助!