﻿(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);