禁用ngbDatepicker输入

时间:2017-09-28 10:14:47

标签: angular angular2-forms angular2-directives ng-bootstrap

我正在使用ngbDatepickerng2-datepicker-jalali。我使用ngbDatepicker指令,如下所示:

   <div class="input-group" dir="ltr">
      <input class="form-control" 
          placeholder="yyyy/m/d" 
          name="dp" 
          [(ngModel)]="registerDate" 
          ngbDatepicker 
          [firstDayOfWeek] = "6"
          [disabled]="disabled"
          #d="ngbDatepicker" >
          <button class="input-group-addon" (click)="d.toggle()" type="button">
              <i class="fa fa-calendar"></i>
          </button>
    </div>

尝试禁用输入以强制从datepicker中选择日期。 [disabled]="disabled" attr禁用整个日期选择器。

1 个答案:

答案 0 :(得分:3)

您可以使用:

[readonly]="true"
<input>上的

可以将输入转换为只读输入,这意味着用户将被迫使用日期选择器进行选择:

<div class="input-group" dir="ltr">
  <input class="form-control" 
    placeholder="yyyy/m/d" 
    name="dp" 
    [(ngModel)]="model" 
    ngbDatepicker 
    [firstDayOfWeek] = "6"
    [readonly]="true"
    #d="ngbDatepicker" >
    <button class="input-group-addon" (click)="d.toggle()" type="button">
      <i class="fa fa-calendar"></i>
    </button>
</div>

唯一的问题是我无法找到清除日期选择器而不删除输入中的文本,因此如果需要,您可能需要实现一个按钮来清除日期:

<button (click)="clear()" type="button">Clear</button>

public clear(): void {
  this.model = undefined;
}

以下是演示:http://plnkr.co/edit/gYneFD?p=preview