How to make a 'mat-select' readonly?

前端 未结 2 2088
悲哀的现实
悲哀的现实 2021-02-13 03:00

I am working on a angular 5 project. There are many mat-select elements which is supposed to be readonly like text boxes. I found out that there is a disabled

相关标签:
2条回答
  • 2021-02-13 03:24

    You can combine an editable select with a readonly textbox and ngIf between them:

      <mat-form-field>
        <mat-label>Choose an option</mat-label>
        <input *ngIf="!editing" mat-input formControlName="mySelect" [readonly]="true">
        <mat-select *ngIf="editing" formControlName="mySelect">
          <mat-option value="option1">Option 1</mat-option>
          <mat-option value="option2" disabled>Option 2 (disabled)</mat-option>
          <mat-option value="option3">Option 3</mat-option>
        </mat-select>
      </mat-form-field>
    
    0 讨论(0)
  • 2021-02-13 03:30

    Add CSS to both select block and mat-form-field block, these can be applied automatically to all the select elements:

    <mat-form-field class="readonly-wrapper">
      <mat-select class="readonly-block" placeholder="Choose an option" [disabled]="disableSelect.value">
        <mat-option value="option1">Option 1</mat-option>
        <mat-option value="option2" disabled>Option 2 (disabled)</mat-option>
        <mat-option value="option3">Option 3</mat-option>
      </mat-select>
    </mat-form-field>  
    

    CSS code:

    .readonly-wrapper {
        cursor: not-allowed;
    }
    
    .readonly-wrapper .readonly-block {
        pointer-events: none;
    }
    
    0 讨论(0)
提交回复
热议问题