Format Take 3
by TokenEx Support
HTML
<input type="text" id="data" maxlength="25" />
JavaScript
data = document.getElementById("data");
function addEventListener(el, eventName, handler) {
if (el.addEventListener) {
el.addEventListener(eventName, handler, false);
} else {
el.attachEvent("on" + eventName, function() {
handler.call(el);
});
}
}
function preventDefault(evt) {
var ev = evt !== undefined ? evt : window.event;
if (ev.preventDefault) {
ev.preventDefault();
} else {
ev.returnValue = false;
}
return ev;
}
function arrayContains(needle, arrhaystack) {
return (arrhaystack.indexOf(needle) > -1);
}
addEventListener(data, "keypress", limitNumericInput);
//addEventListener(data, "keypress", limitLength);
addEventListener(data, "keypress", formatCreditCard);
//addEventListener(data, "keydown", handleBackSpace);
//addEventListener(data, "paste", reFormatCreditCard);
//addEventListener(data, "change", reFormatCreditCard);
//addEventListener(data, "input", reFormatCreditCard);
//data.onkeypress = restrictNumeric;
//data.onkeypress = restrictCardNumber;
//data.onkeypress = formatCardNumber;
//data.onkeydown = formatBackCardNumber;
//data.onpaste = reFormatCardNumber;
//data.onchange = reFormatCardNumber;
//data.oninput = reFormatCardNumber;
//https://github.com/stripe/jquery.payment/blob/master/lib/jquery.payment.js
function limitNumericInput(e) {
//console.log("limitNumericInput");
var input;
if (e.metaKey || e.ctrlKey) {
return true;
}
if (e.which === 32) {
preventDefault(e);
//return false;
}
if (e.which === 0) {
return true;
}
if (e.which < 33) {
return true;
}
input = String.fromCharCode(e.which);
//console.log(!!/[\d\s]/.test(input));
//return !!/[\d\s]/.test(input)
if (!/[\d\s]/.test(input)) {
preventDefault(e);
//return false;
}
//return true;
}
function limitLength(e) {
console.log("limitLength");
var target = e.currentTarget;
var digit = String.fromCharCode(e.which);
if (!/^\d+$/.test(digit)) {
return;
}
if...