角度ui面具不使用angular-ui datepicker

时间:2015-10-19 15:38:05

标签: angularjs angular-ui angular-ui-bootstrap masking

我正在尝试使用带有angular-ui-bootstrap datepicker组件的angular-ui-mask。

当我使用它时,输入会被赋予ng-invalid-date类,即使日期是有效的日期和日期在我将焦点移出该字段后被清除。

我不想在type='date'使用HTML输入,因为并非所有浏览器都支持。

相同的plunker:

http://plnkr.co/edit/dW4AIlF37CLbSHf553d3?p=preview

  <input type="text" class="form-control" ui-mask="99/99/9999" uib-datepicker-popup ng-model="dt" is-open="status.opened" min-date="minDate" max-date="maxDate" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" close-text="Close" />

检查元素以查看分配给它的类。

3 个答案:

答案 0 :(得分:1)

路易斯的答案是对的,但非常不清楚(如果你想删除斜线)。因为默认情况下ui-mask会删除占位符,所以你需要使用:uib-datepicker-popup="MMddyyyy"将它发送到没有它们的uib-datepicker-popup,例如:

<input type="text" uib-datepicker-popup="MMddyyyy" ui-mask="99/99/9999" ... >

或者,如果要保留占位符(斜杠),可以设置model-view-value="true",例如:

<input type="text" uib-datepicker-popup="MM/dd/yyyy" ui-mask="99/99/9999" model-view-value="true" ... >

答案 1 :(得分:0)

我不明白你为什么要使用面具

您需要使用datepicker-popup选项并在其中提供格式

datepicker-popup="MM/dd/yyyy"

答案 2 :(得分:0)

ui-mask不会向后端发送填充物,所以要使用它,你需要这样做:

 <input type="text" class="form-control" ui-mask="99/99/9999" uib-datepicker-popup="ddMMyyyy" ng-model="dt" is-open="status.opened" min-date="minDate" max-date="maxDate" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" close-text="Close" />