A fully customizable, one-time password input component for the web built with Angular.
npm install --save ng-otp-input
Add NgOtpInputModule to imports app.module.ts
something like
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { NgOtpInputModule } from 'ng-otp-input';
@NgModule({
declarations: [AppComponent],
imports: [ BrowserModule,
NgOtpInputModule],
bootstrap: [AppComponent]
})
Add component to your page:
<ng-otp-input (onInputChange)="onOtpChange($event)" [config]="{length:5}"></ng-otp-input>
Name | Type | Required | default | Description |
---|---|---|---|---|
config | object | true | {length:4} | Various configuration options to customize the component |
onOtpChange | function | true | -- | Function that will receive the otp |
setValue | function | false | -- | Call setValue method of component to update component value. See example below |
Config options
Name | Type | Required | default | Description |
---|---|---|---|---|
length | number | true | 4 | Number of OTP inputs to be rendered. |
inputStyles | object | false | -- | Style applied to each input.Check [ngStyles](https://angular.io/api/common/NgStyle) for more info. |
inputClass | string | false | -- | Class applied to each input. |
containerClass | string | false | -- | Class applied to container element. |
containerStyles | object | false | -- | Style applied to container element.Check [ngStyles](https://angular.io/api/common/NgStyle) for more info. |
allowNumbersOnly | bool | false | -- | set true to allow only numbers as input |
allowKeyCodes | string[] | false | -- | By default numbers alphabets and _ - are allowed.Y ou can define other key codes if needed. |
isPasswordInput | bool | false | -- | set true for password type input |
disableAutoFocus | bool | false | -- | First input will be auto focused on component load enable this flag to prevent this behaviour |
Updating component value using setValue method
Component value can be updated using setValue
method of the component example:-
<ng-otp-input #ngOtpInput ></ng-otp-input> //add hash to ng-otp-input component
then in your component reference using @ViewChild and call setValue
method when you want to set the value of component like
@ViewChild('ngOtpInput') ngOtpInputRef:any;//Get reference using ViewChild and the specified hash
yourMethod(){
this.ngOtpInputRef.setValue(yourValue);//yourvalue can be any string or number eg. 1234 or '1234'
}
Add a star to show your support and feel free to open issues and pull requests!
MIT