Search code examples
angularformsionic3ion-select

How to reset Ion-Select form field in Ionic 3?


I want to present an option to allow user to clear the ion-select form field if they decided to not select an option after already selecting, but I'm having a hard time finding anything to help out.

<ion-item class="formField ionField">
        <ion-label color="primary" stacked>PROJECT</ion-label>
        <ion-select
          #projectName
          ngModel
          name="project"
          interface="action-sheet">
          <ion-option (ionSelect)="projectSelect(project.ProjectName,i)" [value]={ID:project.ID,Name:project.ProjectName} *ngFor="let project of projectArray; let i = index" >{{project.ProjectName}}</ion-option>
        </ion-select>
      </ion-item>
Perhaps something like this? Ionic doesn't have any resources for resetting.

<ion-option (ionChange)="resetValue()">Reset</ion-option>

Any help is appreciated.


Solution

  • You cannot use ion-option to reset ion-select form field. But you can provide clear button to reset ion-select if an ion-option is selected as below.

    HTML

    <ion-content padding>
    
      <ion-list>
      <ion-item>
        <ion-label>PROJECT</ion-label>
        <ion-select [(ngModel)]="project">
          <ion-option *ngFor="let project of projects" value="{{project}}">{{project}}</ion-option>
        </ion-select>
      </ion-item>
    </ion-list>
    
    <button *ngIf="project" ion-button (click)="reset()">clear</button>
    
    </ion-content>
    

    TS

    export class HomePage {
    
      projects: any = [];
      project: string;
    
      constructor() {
        this.projects = ["project 1", "project 2", "project 3", "project 4"];
      }
    
      reset() {
        this.project = null;
      }
    }
    

    Find working example here