2017-10-11 84 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

回答

相關問題