Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 验证AngularJs中日期的输入类型_Javascript_Angularjs_Validation_Date - Fatal编程技术网

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

Javascript 验证AngularJs中日期的输入类型,javascript,angularjs,validation,date,Javascript,Angularjs,Validation,Date,这里有一个问题 请注意,当字段为必填项时,此问题不会出现 我有一个日期类型的输入,例如: <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.$

这里有一个问题

请注意,当字段为
必填项时,此问题不会出现

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

<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>
截止日期

请设置正确的日期(yyyy-mm-dd)

视觉演示:

根据此
ng if=“myForm.dueDate.$toucted&&!myForm.dueDate.$valid”
检查字段是否有效,如果无效,则
请设置正确的日期(yyyy-mm-dd)
将显示。正如您可能注意到的,该字段不是必填字段。这意味着默认情况下,
myForm.dueDate.$valid
true

场景:

  • 未触及字段且日期有效(因为它不是必需的且默认值为true)


    预期:按预期工作

  • 字段已被触摸且日期有效


    预期:按预期工作

  • 字段被触摸,日期无效
    预期:必须显示错误消息,因为该字段无效

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


    预期:按预期工作

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


    预期:由于字段有效,因此不必显示错误消息


  • 看起来这是AngularJS v1.4.x中的一个bug,原因很清楚,@gkalpak已经提供了一个解决方案,但是PR正在进行中,可能需要一段时间才能修复