Input fields
Angular Bootstrap 5 Input fields
Input fields refer specifically to the text input fields, which are used to obtain data from the users.
Basic example
A basic example of the input field consists of the input
element with specified
ID
and label
element connected via this ID
with the
input. Both elements are wrapped in .form-outline
class which provides a material
design look.
<mdb-form-control>
<input mdbInput type="text" id="form1" class="form-control" />
<label mdbLabel class="form-label" for="form1">Example label</label>
</mdb-form-control>
Sizing
Set heights using classes like .form-control-lg
and
.form-control-sm
.
<mdb-form-control>
<input mdbInput type="text" id="formControlLg" class="form-control form-control-lg" />
<label mdbLabel class="form-label" for="formControlLg">Form control lg</label>
</mdb-form-control>
<mdb-form-control>
<input mdbInput type="text" id="formControlDefault" class="form-control" />
<label mdbLabel class="form-label" for="formControlDefault">Form control default</label>
</mdb-form-control>
<mdb-form-control>
<input mdbInput type="text" id="formControlSm" class="form-control form-control-sm" />
<label mdbLabel class="form-label" for="formControlSm">Form control sm</label>
</mdb-form-control>
Disabled
Add the disabled
boolean input on an element with mdbInput
directive
to give it a grayed out appearance and remove pointer events.
<mdb-form-control>
<input
mdbInput
class="form-control"
id="formControlDisabled"
type="text"
placeholder="Disabled input"
aria-label="disabled input example"
[disabled]="true"
/>
<label mdbLabel class="form-label" for="formControlDisabled">Disabled</label>
</mdb-form-control>
Readonly
Add the readonly
boolean input on an element with mdbInput
directive
to prevent modification of the input’s value. Read-only inputs appear lighter (just like
disabled inputs), but retain the standard cursor.
<mdb-form-control>
<input
mdbInput
class="form-control"
id="formControlReadonly"
type="text"
placeholder="Readonly input here..."
aria-label="readonly input example"
[readonly]="true"
/>
<label mdbLabel class="form-label" for="formControlReadonly">Readonly</label>
</mdb-form-control>
Types
Input types let you specified what data users should provide and help you validate it.
Text
The input type="text"
defines a single-line text field.
<mdb-form-control>
<input mdbInput type="text" id="typeText" class="form-control" />
<label mdbLabel class="form-label" for="typeText">Text input</label>
</mdb-form-control>
The input field type="email"
defines the email address field. The input value is automatically validated to ensure that it is a properly formatted email address
<mdb-form-control>
<input mdbLabel type="email" id="typeEmail" class="form-control" />
<label mdbInput class="form-label" for="typeEmail">Email input</label>
</mdb-form-control>
Password
The input field type="password"
defines a password field, thus hiding characters as confidential information.
<div class="form-outline">
<input type="password" id="typePassword" class="form-control" />
<label class="form-label" for="typePassword">Password input</label>
</div>
Number
The input type="number"
defines field for entering a number.
<div class="form-outline">
<input type="number" id="typeNumber" class="form-control" />
<label class="form-label" for="typeNumber">Number input</label>
</div>
Phone number
The input type="tel"
defines a field for entering a telephone number.
<div class="form-outline">
<input type="tel" id="typePhone" class="form-control" />
<label class="form-label" for="typePhone">Phone number input</label>
</div>
URL
The input type="url"
defines a field for entering a URL.
<div class="form-outline">
<input type="url" id="typeURL" class="form-control" />
<label class="form-label" for="typeURL">URL input</label>
</div>
Textarea
The textarea
tag defines a multi-line text input control.
<mdb-form-control>
<textarea mdbInput class="form-control" id="textAreaExample" rows="4"></textarea>
<label mdbLabel class="form-label" for="textAreaExample">Message</label>
</mdb-form-control>
Text
Block-level or inline-level form text can be created using .form-text
.
Associating form text with form controls
Form text should be explicitly associated with the form control it relates to using the
aria-describedby
attribute. This will ensure that assistive technologies—such as
screen readers—will announce this form text when the user focuses or enters the control.
Form text below inputs can be styled with .form-text
. If a block-level element
will be used, a top margin is added for easy spacing from the inputs above.
<mdb-form-control>
<input
mdbInput
type="text"
id="formTextExample1"
class="form-control"
aria-describedby="textExample1"
/>
<label mdbLabel class="form-label" for="formTextExample1">Example label</label>
</mdb-form-control>
<div id="textExample1" class="form-text">
We'll never share your email with anyone else.
</div>
Inline text can use any typical inline HTML element (be it a <span>
,
<small>
, or something else) with nothing more than the
.form-text
class.
<div class="row g-3 align-items-center">
<mdb-form-control class="col-auto">
<input
mdbInput
type="password"
id="formTextExample2"
class="form-control"
aria-describedby="textExample2"
/>
<label mdbLabel class="form-label" for="formTextExample2">Password</label>
</mdb-form-control>
<div class="col-auto">
<span id="textExample2" class="form-text"> Must be 8-20 characters long. </span>
</div>
</div>
Character counter
With the help of form-helper
, form-counter
classes and input's
maxlength
attribute you can easily create a character counter.
<mdb-form-control>
<input
mdbInput
[formControl]="input"
type="text"
id="formCharacterCounter"
class="form-control"
aria-describedby="characterCounter"
[maxlength]="maxLength"
/>
<label mdbLabel class="form-label" for="formCharacterCounter">Example label</label>
<div class="form-helper">
<div class="form-counter">{{ characterCount }} / {{ maxLength }}</div>
</div>
</mdb-form-control>
import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
})
export class AppComponent implements OnInit {
input = new FormControl();
characterCount = 0;
maxLength = 20;
constructor() {}
ngOnInit(): void {
this.input.valueChanges.subscribe((value) => {
this.characterCount = value.length;
});
}
}
Dark background
When placing an input on the dark background add .form-white
class next to
.form-outline
to provide proper contrast.
<mdb-form-control class="form-white">
<input mdbInput type="text" id="formWhite" class="form-control" />
<label mdbLabel class="form-label" for="formWhite">Example label</label>
</mdb-form-control>
Input fields - API
Import
import { MdbFormsModule } from 'mdb-angular-ui-kit/forms';
import { ReactiveFormsModule } from '@angular/forms';
…
@NgModule ({
...
imports: [MdbFormsModule, ReactiveFormsModule],
...
})
Inputs
Name | Type | Default | Description |
---|---|---|---|
disabled |
Boolean | false |
Changes input disabled state |
readonly |
Boolean | false |
Changes input readonly state |
value |
any | - |
Changes input value |