InputMask Test
HTML
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<form id="dataform" method="get" action="#">
<label>A test for my input field</label>
<input id="mytextfield" value="notAcCepted" inputmask="254" type="text" required></input>
</form>
CSS
.error {
color: red
}
JavaScript
var inputClasses = {
upper: {
chars: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
mask: 1
},
lower: {
chars: "abcdefghijklmnopqrstuvwxyz",
mask: 1 << 1
},
digits: {
chars: "0123456789",
mask: 1 << 2
},
operators: {
chars: "/*-+",
mask: 1 << 3
},
underline: {
chars: "_",
mask: 1 << 4
},
space: {
chars: " ",
mask: 1 << 5
},
brackets: {
chars: "()[]{}",
mask: 1 << 6
},
special: {
chars: "@|~!$%&,:;<=>?\\^.",
mask: 1 << 7
}
};
var isAccepted = function (checkmask, typemask) {
return (checkmask & typemask) !== 0;
};
$.validator.messages.inputmask = $.validator.format("don't use that: input mask is {0}");
$.validator.methods.inputmask = function (value, element, param) {
var accChars = "";
// Get a list of all accepted chars
for (var key in inputClasses) {
var icls = inputClasses[key];
if (isAccepted(param, icls.mask)) accChars += icls.chars;
}
// for each char check if it is within a list
for (var i = 0; i < value.length; i++) {
if (accChars.indexOf(value[i]) === -1) return false;
}
return true;
};
$(function () {
$("#dataform").validate();
$("#dataform").valid();
});