90 lines
2.8 KiB
JavaScript
90 lines
2.8 KiB
JavaScript
![]() |
/*
|
||
|
* Input Mask plugin for jquery
|
||
|
* http://github.com/RobinHerbots/jquery.inputmask
|
||
|
* Copyright (c) 2010 - Robin Herbots
|
||
|
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
||
|
* Version: 0.0.0-dev
|
||
|
*/
|
||
|
|
||
|
(function (factory) {
|
||
|
if (typeof define === "function" && define.amd) {
|
||
|
define(["jquery", "./inputmask"], factory);
|
||
|
} else if (typeof exports === "object") {
|
||
|
module.exports = factory(require("jquery"), require("./inputmask"));
|
||
|
} else {
|
||
|
factory(jQuery, window.Inputmask);
|
||
|
}
|
||
|
}
|
||
|
(function ($, Inputmask) {
|
||
|
if ($.fn.inputmask === undefined) {
|
||
|
//jquery plugin
|
||
|
$.fn.inputmask = function (fn, options) {
|
||
|
var nptmask, input = this[0];
|
||
|
if (options === undefined) options = {};
|
||
|
if (typeof fn === "string") {
|
||
|
switch (fn) {
|
||
|
case "unmaskedvalue":
|
||
|
return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();
|
||
|
case "remove":
|
||
|
return this.each(function () {
|
||
|
if (this.inputmask) this.inputmask.remove();
|
||
|
});
|
||
|
case "getemptymask":
|
||
|
return input && input.inputmask ? input.inputmask.getemptymask() : "";
|
||
|
case "hasMaskedValue": //check wheter the returned value is masked or not; currently only works reliable when using jquery.val fn to retrieve the value
|
||
|
return input && input.inputmask ? input.inputmask.hasMaskedValue() : false;
|
||
|
case "isComplete":
|
||
|
return input && input.inputmask ? input.inputmask.isComplete() : true;
|
||
|
case "getmetadata": //return mask metadata if exists
|
||
|
return input && input.inputmask ? input.inputmask.getmetadata() : undefined;
|
||
|
case "setvalue":
|
||
|
$(input).val(options);
|
||
|
if (input && input.inputmask === undefined) { //reactivate jquery.clone
|
||
|
$(input).triggerHandler("setvalue");
|
||
|
}
|
||
|
break;
|
||
|
case "option":
|
||
|
if (typeof options === "string") {
|
||
|
if (input && input.inputmask !== undefined) {
|
||
|
return input.inputmask.option(options);
|
||
|
}
|
||
|
} else {
|
||
|
return this.each(function () {
|
||
|
if (this.inputmask !== undefined) {
|
||
|
return this.inputmask.option(options);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
break;
|
||
|
default:
|
||
|
options.alias = fn;
|
||
|
nptmask = new Inputmask(options);
|
||
|
return this.each(function () {
|
||
|
nptmask.mask(this);
|
||
|
});
|
||
|
}
|
||
|
} else if (typeof fn == "object") {
|
||
|
nptmask = new Inputmask(fn);
|
||
|
if (fn.mask === undefined && fn.alias === undefined) {
|
||
|
return this.each(function () {
|
||
|
if (this.inputmask !== undefined) {
|
||
|
return this.inputmask.option(fn);
|
||
|
} else nptmask.mask(this);
|
||
|
});
|
||
|
} else {
|
||
|
return this.each(function () {
|
||
|
nptmask.mask(this);
|
||
|
});
|
||
|
}
|
||
|
} else if (fn === undefined) {
|
||
|
//look for data-inputmask atributes
|
||
|
return this.each(function () {
|
||
|
nptmask = new Inputmask(options);
|
||
|
nptmask.mask(this);
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
return $.fn.inputmask;
|
||
|
}));
|