2016-04-26 67 views
0

我正在使用Angular創建一個Web應用程序。我有一個帶有兩個日期輸入的表單:兩個日期輸入的自定義驗證

<label for="date-from">From: </label> 
    <input class="range-data" type="date" name="date-from" id="date-from" value=""> 
    <label for="date-to">To: </label> 
    <input class="range-data" type="date" name="date-to" id="date-to" value=""> 

如何檢查兩個日期範圍是否重疊? 搜索在這裏,所以我已經找到this answer

<input name="min" type="number" ng-model="field.min"/> 
<input name="max" type="number" ng-model="field.max" min=" {{ field.min }}"/> 

你有什麼其他的建議?

+1

日期變得更糟進行處理。我擔心唯一的方法就是在兩個元素上使用'ng-change'屬性關聯一個自定義檢查函數,並且在需要顯示任何警告時手動創建HTML元素 – Naigel

回答

1

首先,在輸入中不存在ng模型,這是使用表單的「角度方式」所必需的。之後,當日期需要以「YYYY-MM-DD」格式提供時,HTML5支持日期的最小值和最大值。請注意,並非所有瀏覽器都支持「日期」輸入。

的可選實現:

<label for="date-from">From: </label> 
<input class="range-data" ng-model="fromDate" type="date" name="date-from" id="date-from" max="{{toDate|date:'yyyy-MM-dd'}}"> 
<label for="date-to">To: </label> 
<input class="range-data" ng-model="toDate" type="date" name="date-to" id="date-to" min="{{fromDate|date:'yyyy-MM-dd'}}"> 

enter image description here

+0

我知道我的輸入中沒有ng-model ,在查找解決方案之前,它是我的HTML代碼。無論如何,我試過你的代碼,但它不起作用(在Chrome和Firefox上都測試過)。 – smartmouse

+0

在Chrome中運行時沒有問題。查看圖片:http://imgur.com/6ozVKq3 –

+0

我在Chromium上,它不起作用。我甚至嘗試過Chrome Mobile,但也發生了同樣的情況。無論如何謝謝你的回覆。 – smartmouse