vue-imask
Vue IMask Plugin
vue-imask
Install
npm i vue-imask
for Vue 2 also do:
npm i -D @vue/composition-api
If you are using NuxtJS with Vue 2 you also need to install:
npm i -D @nuxtjs/composition-api
And then add @nuxtjs/composition-api/module in the buildModules option in your nuxt.config.js.
Mask Component Example (Vue 2)
<template>
<imask-input
v-model="numberModel"
:mask="Number"
radix="."
:unmask="true"
<!-- depending on prop above first argument of 'accept' callback is
`value` if `unmask=false`,
`unmaskedValue` if `unmask=true`,
`typedValue` if `unmask='typed'` -->
@accept="onAccept"
<!-- ...see more mask props in a guide -->
<!-- other input props -->
placeholder='Enter number here'
/>
</template>
<script>
import { IMaskComponent } from 'vue-imask';
export default {
data () {
return {
numberModel: '',
onAccept (value) {
console.log(value);
}
}
},
components: {
'imask-input': IMaskComponent
}
}
</script>
Mask Component Example (Vue 3)
<template>
<imask-input
<!-- possible to use 'v-model' = 'v-model:value' = 'v-model:masked' and 'v-model:unmasked' -->
v-model:typed="numberModel"
:mask="Number"
radix="."
@accept:masked="onAccept" <!-- accept value (same as '@accept:value' or just '@accept') -->
@accept:unmasked="onAcceptUnmasked"
<!--
@accept:typed="onAccepttyped"
@complete:typed="onCompleteTyped"
-->
<!-- ...see more mask props in a guide -->
<!-- other input props -->
placeholder='Enter number here'
/>
</template>
<script>
import { IMaskComponent } from 'vue-imask';
export default {
data () {
return {
numberModel: '',
onAccept (value) {
console.log({ value });
},
onAcceptUnmasked (unmaskedValue) {
console.log({ unmaskedValue });
}
}
},
components: {
'imask-input': IMaskComponent
}
}
</script>
Mask Directive Example
In some cases value bindings (v-model) might not work for directive, you can use @accept or @complete events to update the value.
<template>
<input
:value="value"
v-imask="mask"
@accept="onAccept"
@complete="onComplete">
</template>
<script>
import { IMaskDirective } from 'vue-imask';
export default {
data () {
return {
value: '',
mask: {
mask: '{8}000000',
lazy: false
},
},
},
methods: {
onAccept (e) {
const maskRef = e.detail;
this.value = maskRef.value;
console.log('accept', maskRef.value);
},
onComplete (e) {
const maskRef = e.detail;
console.log('complete', maskRef.unmaskedValue);
},
},
directives: {
imask: IMaskDirective
}
}
</script>
More options see in a guide.
Mask Composable (Vue 3)
<template>
<input ref="el">
</template>
<script>
import { useIMask } from 'vue-imask';
export default {
setup (props) {
const { el, masked } = useIMask({
mask: Number,
radix: '.',
}, /* optional {
emit,
onAccept,
onComplete,
defaultValue,
defaultUnmaskedValue,
defaultTypedValue,
} */);
return { el };
}
}
</script>
Related Packages
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 7.6.1 | >=2.7 | MIT | |
| 7.6.0 | >=2.7 | MIT | |
| 7.5.0 | >=2.7 | MIT | |
| 7.4.0 | >=2.7 | MIT | |
| 7.3.0 | >=2.7 | MIT | |
| 7.2.1 | >=2.7 | MIT | |
| 7.2.0 | >=2.7 | MIT | |
| 7.1.3 | >=2.7 | MIT | |
| 7.1.2 | >=2.2.0 | MIT | |
| 7.1.1 | >=2.2.0 | MIT | |
| 7.1.0 | >=2.2.0 | MIT | |
| 7.0.1 | >=2.2.0 | MIT | |
| 7.0.0 | >=2.2.0 | MIT | |
| 6.6.3 | >=2.2.0 | MIT | |
| 6.6.2 | >=2.2.0 | MIT | |
| 6.6.1 | >=2.2.0 | MIT | |
| 6.6.0 | >=2.2.0 | MIT | |
| 6.5.1 | >=2.2.0 | MIT | |
| 6.5.0 | >=2.2.0 | MIT | |
| 6.4.3 | >=2.2.0 | MIT | |
| 6.4.2 | >=2.2.0 | MIT | |
| 6.4.0 | >=2.2.0 | MIT | |
| 6.3.0 | >=2.2.0 | MIT | |
| 6.2.2 | >=2.2.0 | MIT | |
| 6.2.0 | >=2.2.0 | MIT | |
| 6.1.0 | >=2.2.0 | MIT | |
| 6.0.7 | >=2.2.0 | MIT | |
| 6.0.6 | >=2.2.0 | MIT | |
| 6.0.5 | >=2.2.0 | MIT | |
| 6.0.3 | >=2.2.0 | MIT |
Showing the latest 30 of 63. See every release on npm
Pre-releases (27)
| Version | Released | Vue | License |
|---|---|---|---|
| 7.5.1-alpha.0 | >=2.7 | MIT | |
| 7.3.1-alpha.0 | >=2.7 | MIT | |
| 7.1.0-alpha.2 | >=2.2.0 | MIT | |
| 7.1.0-alpha.1 | >=2.2.0 | MIT | |
| 7.1.0-alpha.0 | >=2.2.0 | MIT | |
| 7.0.1-alpha.1 | >=2.2.0 | MIT | |
| 7.0.1-alpha.0 | >=2.2.0 | MIT | |
| 7.0.0-alpha.6 | >=2.2.0 | MIT | |
| 7.0.0-alpha.5 | >=2.2.0 | MIT | |
| 7.0.0-alpha.4 | >=2.2.0 | MIT | |
| 7.0.0-alpha.3 | >=2.2.0 | MIT | |
| 7.0.0-alpha.2 | >=2.2.0 | MIT | |
| 7.0.0-alpha.1 | >=2.2.0 | MIT | |
| 7.0.0-alpha.0 | >=2.2.0 | MIT | |
| 6.6.1-alpha.2 | >=2.2.0 | MIT | |
| 6.6.1-alpha.1 | >=2.2.0 | MIT | |
| 6.6.1-alpha.0 | >=2.2.0 | MIT | |
| 6.6.0-alpha.0 | >=2.2.0 | MIT | |
| 6.5.1-alpha.1 | >=2.2.0 | MIT | |
| 6.5.1-alpha.0 | >=2.2.0 | MIT | |
| 6.5.0-alpha.1 | >=2.2.0 | MIT | |
| 6.5.0-alpha.0 | >=2.2.0 | MIT | |
| 6.4.3-alpha.1 | >=2.2.0 | MIT | |
| 6.4.3-alpha.0 | >=2.2.0 | MIT | |
| 6.4.1-alpha.0 | >=2.2.0 | MIT | |
| 6.3.0-alpha.0 | >=2.2.0 | MIT | |
| 6.0.0-alpha.0 | >=2.2.0 | MIT |