Minimal Credit Card Input Validation Library – creditCardValidator.js
| AUTHOR: | DysonJ |
|---|---|
| VIEWS TOTAL: | 6,219 views |
| OFFICIAL PAGE: | Go to website |
| LAST UPDATE: | September 14, 2016 |
| LICENSE: | MIT |
Preview:

Description:
A minimal, vanilla JavaScript credit card validator that has the ability to check & validate the credit card number, expiration Date and CVV. Very useful for your e-commerce or business websites.
How to use it:
The html structure for the credit card form.
<div class="card-bounding">
<aside>Card Number:</aside>
<div class="card-container">
<!--- ".card-type" is a sprite used as a background image with associated classes for the major card types, providing x-y coordinates for the sprite --->
<div class="card-type"></div>
<input placeholder="0000 0000 0000 0000" onkeyup="$cc.validate(event)" />
<!-- The checkmark ".card-valid" used is a custom font from icomoon.io --->
<div class="card-valid"></div>
</div>
<div class="card-details clearfix">
<div class="expiration">
<aside>Expiration Date</aside>
<input onkeyup="$cc.expiry.call(this,event)" maxlength="7" placeholder="mm/yyyy" />
</div>
<div class="cvv">
<aside>CVV</aside>
<input placeholder="XXX"/>
</div>
</div>
</div>Download and place the core JavaScript creditCardValidator.js at the end of the document.
<script src="creditCardValidator.js"></script>
Apply your own CSS styles to the credit card form.
.card-bounding {
width: 90%;
max-width: 500px;
margin: 0 auto;
position: relative;
top: 50%;
transform: translateY(-50%);
padding: 30px;
border: 1px solid #3e73ea;
border-radius: 6px;
font-family: 'Roboto';
background: #ffffff;
}
.card-bounding aside {
font-size: 24px;
padding-bottom: 8px;
}
.card-container {
width: 100%;
padding-left: 80px;
padding-right: 40px;
position: relative;
box-sizing: border-box;
border: 1px solid #ccc;
margin: 0 auto 30px auto;
}
.card-container input {
width: 100%;
letter-spacing: 1px;
font-size: 30px;
padding: 15px 15px 15px 25px;
border: 0;
outline: none;
box-sizing: border-box;
}
.card-type {
width: 80px;
height: 56px;
background: url("images/cards.png");
background-position: 0 -291px;
background-repeat: no-repeat;
position: absolute;
top: 3px;
left: 4px;
}
.card-type.mastercard { background-position: 0 0; }
.card-type.visa { background-position: 0 -115px; }
.card-type.amex { background-position: 0 -57px; }
.card-type.discover { background-position: 0 -174px; }
.card-valid {
position: absolute;
top: 0;
right: 15px;
line-height: 60px;
font-size: 40px;
font-family: 'icons';
color: #ccc;
}
.card-valid.active { color: #42ca7c; }
.card-details {
width: 100%;
text-align: left;
margin-bottom: 30px;
transition: 300ms ease;
}
.card-details input {
font-size: 30px;
padding: 15px;
box-sizing: border-box;
width: 100%;
}
.card-details input.error {
border: 1px solid #c2313c;
box-shadow: 0 4px 8px 0 rgba(238,76,87,0.3);
outline: none;
}
.card-details .expiration {
width: 50%;
float: left;
padding-right: 5%;
}
.card-details .cvv {
width: 45%;
float: left;
}
