Files
tabler/docs/content/ui/forms/form-input-mask.mdx
T

66 lines
2.1 KiB
Plaintext

---
title: Input mask
summary: An input mask is used to clarify the input format required in a given field and is helpful for users, removing confusion and reducing the number of validation errors.
description: Format user input automatically with input masks for dates, phone numbers, and other patterns to reduce validation errors.
docs-libs: [imask]
related: [/ui/forms/form-elements]
---
import Example from '@components/Example.astro'
import TabsPackage from '@components/TabsPackage.astro'
import CodeDocs from '@components/CodeDocs.astro';
## Installation
To be able to use the input mask in your application you will need to install the imask dependency. You can do this by running the following command:
<TabsPackage name="imask" />
And import or require:
```javascript
import IMask from 'imask'
```
You can also use the CDN link to include the script in your project:
```html
<script src="https://cdn.jsdelivr.net/npm/imask"></script>
```
If you struggle with the installation, you can find more information in the [IMask documentation](https://imask.js.org/guide.html#installation).
## Default markup
Use an input mask in the fields where users have to enter their phone number, to make the formatting rules clear and help them avoid confusion.
To create an input mask, add the `data-mask` attribute to the input element:
```html
<input
type="text"
name="input-mask"
class="form-control"
data-mask="(00) 0000-0000"
placeholder="(00) 0000-0000"
autocomplete="off"
/>
```
Look at the example below to see how the input mask works:
<Example>
<label class="form-label">Telephone mask</label>
<input type="text" name="input-mask" class="form-control" data-mask="(00) 0000-0000" data-mask-visible="true" placeholder="(00) 0000-0000" autocomplete="off" />
</Example>
## More examples
If you need more examples of input masks, you can find them in the [IMask documentation](https://imask.js.org/guide.html#masked-input).
## JavaScript
Tabler automatically initializes all elements with `data-mask` on page load. This is the code that runs:
<CodeDocs name="input-mask-init" file="core/js/src/input-mask.ts" />