簡體   English   中英

驗證AngularJs中日期的輸入類型

[英]Validate input type of date in AngularJs

這是一個問題。

請注意,在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>

視覺演示: 在此處輸入圖片說明

根據此ng-if="myForm.dueDate.$touched && !myForm.dueDate.$valid" ,檢查該字段是否有效,如果無效, Please set correct date (yyyy-mm-dd) 您可能會注意到,該字段不是必填字段。 這意味着默認情況下, myForm.dueDate.$validtrue

場景:

  1. 未觸摸字段且日期有效(因為它不是必需的,並且默認為true)

    在此處輸入圖片說明
    預期:按預期工作

  2. 觸摸字段並且日期有效

    在此處輸入圖片說明
    預期:按預期工作

  3. 觸摸了字段並且日期無效 在此處輸入圖片說明
    預期:由於該字段無效,因此必須顯示錯誤消息

  4. 觸摸字段,日期首先設置為/01/01/2015 ,然后更改為/01/mm/2015 (無效)

    在此處輸入圖片說明
    預期:按預期工作

  5. 觸摸字段,日期首先設置為/01/01/2015 ,然后更改為/dd/mm/yyyy (根據ng-if="myForm.dueDate.$touched && !myForm.dueDate.$valid聲明)

    在此處輸入圖片說明
    預期的:因為該字段有效,所以沒有錯誤消息必須顯示

看來這是AngularJS v1.4.x的錯誤,清晰的解釋在此github PR中 @gkalpak已經提供了一種解決方案,但是PR處於里程碑狀態 ,可能需要一段時間才能解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM