Ember Inputmask is an Ember addon and a wrapper of the Inputmask library. It provides a general use input masking component, along with a set of commonly used masks including:
- Credit card number
- Currency
- Date
- Number
- US/Canada phone number
- US SSN
- US ZIP Code
Inputmask (previously known as jquery.inputmask
) used to be a jQuery plugin,
but is now a standalone package without relying on jQuery.
Ember Inputmask currently has two branches:
-
v0.2.x pulls legacy jquery.inputmask 3.2.x from Bower. This branch is in maintenance mode. Critical bugs will be fixed, but minor issues will not be fixed and new features will not be added.
-
v0.4.x (master) pulls Inputmask 3.3.x from NPM. Bower and jQuery are not required.
Versions prior to 0.4.0 automatically add jquery.inputmask
into your
application's bower.json
file. If you are upgrading from a pre-0.4 version to
0.4.x, feel free to remove it from bower.json
.
In case you are using v0.3.0 of this addon -- it was a versioning mistake. In fact, v0.3.0 is older than v0.2.1 and we don't recommend it. Feel free to upgrade to the latest version of either v0.2.x or v0.4.x.
$ ember install ember-inputmask
The standard input-mask
component:
9
: numerica
: alphabetical*
: alphanumericA
: automatically uppercased alphabetical#
: unicode
Optional portions of masks are delimited with brackets []
:
The mask is applied directly to the input itself, meaning it alters the value
attribute. There are times when you might want the value with the mask, and
times when you might want the value without the mask. For example:
This is an ad hoc mask for a date (consider using the date-input
component
instead). If the user were to enter 12/12/2014
, the value of foo
would be
just that, whereas the value of bar
would be 12122014
, which may not be as
useful to you. Either way, both values are accessible and bound to each other,
so choose whichever one you want.
-
maskPlaceholder
(default:null
)Override Inputmask's default
placeholder
option. -
showMaskOnFocus
(default:true
)Shows the user a preview of the mask when the field is focussed.
-
showMaskOnHover
(default:true
)Shows the user a preview of the mask when the field is hovered.
-
rightAlign
(default:false
)This is an option on the original plugin, but I highly recommend using CSS classes because all it does is apply a style directly to the input.
-
clearIncomplete
(default:false
)If the user does not completely fill in the mask before defocus, it will clear the input.
-
greedyMask
(default:false
)If there are any optional portions of the mask this decides whether or not to display them in the preview.
As mentioned above, this addon include other components that extend the base
input-mask
component. Some of simple aliases, but some add additional options.
The credit-card-input
dynamically determines the type of the credit card and
changes the mask as appropriate. It currently has support for:
- Visa
- MasterCard
- Amex
- Diners Club
- Discover
- JCB
The card type is stored in cardType
, which can be bound to. The separator for
numbers can be specified with the separator
option, and defaults to -
.
This is just a wrapper for the Inputmask alias and is equivalent to the following:
This is just a wrapper for the Inputmask alias and is equivalent to the following:
This is just a wrapper for the Inputmask alias and is equivalent to the following:
Number inputs only accept numbers, and can be modified using the following options:
group
: Display the number grouped for readability (e.g.1,234
vs.1234
).groupSize
: Change the size of the groups.separator
: Change the group separator. (Caveat: If radix and separator are the same, then the radix will default to '.'.)decimal
: If set totrue
then the input will be given 2 decimal places, if set some number then the input will be given that many decimal places.radix
: Sets the radix that separates the decimal places.digitsOptional
: Specify whether digits are optional (e.g.97.00
vs.97
)prefix
: Sets a prefix to be displayed before the number (e.g.$97.00
)suffix
: Sets a suffix to be displayed after the number (e.g.100%
)min
: Sets the minimum value for the fieldmax
: Sets the maximum value for the fieldunmaskAsNumber
: Unmasks the input as a number rather than a string (e.g.1234.56
vs.'1234,56'
)
Masks a US/Canada phone number with the format (999) 999-9999
. The
extensions
option can be set to true
to allow up to 4 digit extensions
(999) 999-9999 x 9999
. Note that if greedyMask
is set to false
, which is
the default, then you have to press space or 'x' to activate the extension part
of the mask when entering.
NOTE: There is a "phone" alias included in Inputmask, but when I tried using it, I encountered slowness and freezeups. It is much more general than this tag, however.
Masks a US SSN code (999-99-9999
).
Masks a US ZIP code. If fullCode
is set to true
, then it will enable the
user to enter an extended ZIP+4 code.