ToggleSwitch

ToggleSwitch is used to select a boolean value.


import { ToggleSwitch } from 'primeng/toggleswitch';

Two-way value binding is defined using ngModel.


<p-toggleswitch [(ngModel)]="checked" />

ToggleSwitch can also be used with reactive forms. In this case, the formControlName property is used to bind the component to a form control.


<p-toggleswitch formControlName="checked" />

Enabling ngModel property displays the component as active initially.


<p-toggleswitch [(ngModel)]="checked" />

Invalid state style is added using the ng-invalid and ng-dirty class to indicate a failed validation.


<p-toggleswitch [(ngModel)]="checked" class="ng-dirty ng-invalid" />

The handle template is available to display custom content.


<p-toggleswitch [(ngModel)]="checked">
    <ng-template #handle let-checked="checked">
        <i [ngClass]="['!text-xs', 'pi', checked ? 'pi-check' : 'pi-times']"></i>
    </ng-template>
</p-toggleswitch>

When disabled is present, the element cannot be edited and focused.


<p-toggleswitch [(ngModel)]="checked" [disabled]="true" />

Screen Reader

InputSwitch component uses a hidden native checkbox element with switch role internally that is only visible to screen readers. Value to describe the component can either be provided via label tag combined with inputId prop or using ariaLabelledBy, ariaLabel props.


<label for="switch1">Remember Me</label>
<p-toggleswitch inputId="switch1" />

<span id="switch2">Remember Me</span>
<p-toggleswitch ariaLabelledBy="switch2" />

<p-toggleswitch ariaLabel="Remember Me" />

Keyboard Support

KeyFunction
tabMoves focus to the switch.
spaceToggles the checked state.