繁体   English   中英

如何在 mat-datepicker 输入中格式化用户输入的输入?

[英]How to format user typed input in mat-datepicker input?

当用户在输入中输入数字日期(例如 03151989)时,我希望它在输入时自动格式化为 03/15/1989。

我一生都无法弄清楚如何做到这一点。 我试过一个正则表达式,但如果你一次输入多个数字,它会破坏它。

我尝试将输入类型更改为日期,但这会导致 mat-datepicker 出现问题,并且出现错误:

指定的值“3/15/1989”不符合要求的格式“yyyy-MM-dd”。

有谁知道如何解决此错误或如何纠正我遇到的问题?

我希望 angular 材料对此有解决方案,但即使在他们的文档页面上,它似乎也没有格式化,并且还允许您在输入中输入字母和其他字符。

这是我正在使用的代码示例:

   <mat-form-field class="form-element span-1-2">
    <mat-label>Test *</mat-label>
    <input
      matInput
      [matDatepicker]="datePicker"
      formControlName="test"
      type="date"
    />
    <mat-datepicker-toggle
      matSuffix
      [for]="datePicker"
    ></mat-datepicker-toggle>
    <mat-datepicker #datePicker></mat-datepicker>
  </mat-form-field>

您可以为输入分配一个 ID,将类型更改回文本,然后使用 vanilla javascript 来定位输入,在键入时应用所需的格式,并仅限于数字。

    <input id="dateInput" matInput [matDatepicker]="datePicker" formControlName="test" 
type="text" />

看看这个codepen,我认为它实现了你正在寻找的格式: https://codepen.io/tutsplus/pen/KMWqRr

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM