在AngularJs中验证日期的输入类型

时间:2015-12-20 11:02:47

标签: javascript angularjs validation date

这是一个问题。

请注意,当字段为required

时,系统不会显示此问题

我的输入有类型日期,例如:

<label for="due-date">Due date</label>
<input
  type="date"
  name="dueDate"
  id="dueDate"
  ng-model="form.dueDate"
>
<div ng-if="myForm.dueDate.$touched && !myForm.dueDate.$valid" ng-messages="myForm.dueDate.$error">
  <p class="form-error-text" ng-show="myForm.dueDate.$error">
    Please set correct date (yyyy-mm-dd)
  </p>
</div>

视觉演示: enter image description here

根据此ng-if="myForm.dueDate.$touched && !myForm.dueDate.$valid",检查字段是否有效,如果无效,则会显示Please set correct date (yyyy-mm-dd)。您可能已经注意到该字段不是必填字段。这意味着默认情况下myForm.dueDate.$validtrue

场景:

  1. 未触及字段且日期有效(因为它不是必需的,默认为真)

    enter image description here
    预期:按预期工作

  2. 触摸字段且日期有效

    enter image description here
    预期:按预期工作

  3. 触摸字段且日期无效 enter image description here
    预期:必须显示错误消息,因为该字段无效

  4. 触摸字段,日期首先设置为/01/01/2015,然后更改为/01/mm/2015(无效)

    enter image description here
    预期:按预期工作

  5. 触摸字段,日期首先设置为/01/01/2015,然后更改为/dd/mm/yyyy(根据ng-if="myForm.dueDate.$touched && !myForm.dueDate.$valid语句有效)

    enter image description here
    预期:必须显示无错误消息,因为该字段有效

0 个答案:

没有答案