Files
2016-11-07 12:56:17 -05:00

73 lines
1.3 KiB
JavaScript

(function ($) {
$.fn.alphanumeric = function (p) {
p = $.extend({
ichars: "!@#$%^&*()+=[]\\\';,/{}|\":<>?~`.- ",
nchars: "",
allow: ""
}, p);
return this.each
(
function () {
if (p.nocaps) p.nchars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (p.allcaps) p.nchars += "abcdefghijklmnopqrstuvwxyz";
s = p.allow.split('');
for (i = 0; i < s.length; i++) if (p.ichars.indexOf(s[i]) != -1) s[i] = "\\" + s[i];
p.allow = s.join('|');
var reg = new RegExp(p.allow, 'gi');
var ch = p.ichars + p.nchars;
ch = ch.replace(reg, '');
$(this).keypress
(
function (e) {
if (!e.charCode) k = String.fromCharCode(e.which);
else k = String.fromCharCode(e.charCode);
if (ch.indexOf(k) != -1) e.preventDefault();
if (e.ctrlKey && k == 'v') e.preventDefault();
}
);
$(this).bind('contextmenu', function () { return false });
}
);
};
$.fn.numeric = function (p) {
var az = "abcdefghijklmnopqrstuvwxyz";
az += az.toUpperCase();
p = $.extend({
nchars: az
}, p);
return this.each(function () {
$(this).alphanumeric(p);
});
};
$.fn.alpha = function (p) {
var nm = "1234567890";
p = $.extend({
nchars: nm
}, p);
return this.each(function () {
$(this).alphanumeric(p);
}
);
};
})(jQuery);