禁用日期的HTML5 Datepicker在Angular中不起作用

时间:2018-03-13 16:32:51

标签: angular typescript datepicker angular-reactive-forms

我想在日期选择器(HTML5)中禁用过去的日期。当我使用日期选择器而没有任何条件(自发地)时,禁用日期正在运行。

如果我使用有条件的日期选择器,它就不会工作。我使用jQuery将今天的日期附加到" min" date元素的属性(使用带有Angular的jQuery是不好的做法)。因为我无法使用表单控件打字稿找到如何访问/追加日期元素的属性。 (例:formname.get(' formcontrolName')....)

我希望日期选择器适用于条件。

Source code

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以将datepicker的min属性绑定到组件的属性。这是工作示例的相关部分(请注意,必须将值赋给构造函数中的给定属性,因为ngAfterViewInit生命周期钩子被调用到后期):

HTML

<input type="date" class="form-control" [min]="today" id="applyDate1" formControlName="applyDate1"/> 

打字稿

export class AppComponent implements AfterViewInit {

  public personalForm: FormGroup;
  public today;

  constructor(private fb: FormBuilder) {
    const currentDate:Date = new Date();
    let dd:any = currentDate.getDate();
    let mm:any = currentDate.getMonth()+1;
    let yyyy:any = currentDate.getFullYear();

    if(dd<10) {
        dd = '0'+dd
    } 

    if(mm<10) {
        mm = '0'+mm
    } 

    this.today = yyyy + '-' + mm + '-' + dd;

    ...
  }

 ...

}