2017-10-11 83 views
0

如果我使用HTML5日期输入和字段表示映射到一个可空datetime列在数据库中,我该如何设置围绕在输入字段为空值的日期?允许HTML5日期输入空值

我的应用程序正在使用AngularJS和我的NG-模型映射到具有空的初始值(或空字符串)一个范围可变。以下是浏览器的控制台所说的内容:

Error: [ngModel:datefmt] http://errors.angularjs.org/1.6.6/ngModel/datefmt?p0=2017-09-14T00%3A00%3A00 
    at angular.js:88 
    at Array.<anonymous> (angular.js:25308) 
    at angular.js:29301 
    at m.$digest (angular.js:18253) 
    at m.$apply (angular.js:18531) 
    at l (angular.js:12547) 
    at s (angular.js:12785) 
    at XMLHttpRequest.y.onload (angular.js:12702) undefined 

该文档说明分配给日期输入字段的值必须是Date对象。我试图传递的值不是日期,因为该字段并不总是有值。我想我可以提供一个默认值,比如今天的日期,但我担心用户可能会允许在特定的领域并不需要一个值提交该值(例如取消日期的东西,还没有取消) 。

看来还取决于哪种浏览器使用的是您可以清除用户之前通过点击“X”按钮,浏览器在现场插入输入的日期。我试图添加一个按钮来设置字段的值为空字符串,但我得到相同的错误。

我在过去做过的解决方法是改为使用文本输入字段并使用正则表达式来验证输入,但似乎不应该这样做,并且日期输入字段应该允许空条目。

+0

你尝试使用一个空字符串?它的工作原理在这个[上PLNKR DEMO](https://plnkr.co/edit/6aYiYDgNc6kLFr1GKBXp?p=preview)。 – georgeawg

+0

我想这毕竟有效;当我的模型的日期值被绑定时,该错误实际上正在发生。与控件关联的日期格式为“mm/dd/yyyy”(与Chrome相似,就像您的示例一样),但相关日期为“2017-09-14T00:00:00”。我不在乎这种情况下的时间部分,只是日期部分。这几乎就像它不喜欢这种格式。我如何解决这个问题?如果我能解决这个问题,我一定会修复应用程序其他部分的所有笨拙的解决方法。 – DesertFoxAZ

回答

相关问题