victorjonsson / jQuery-Form-Validator

[DISCONTINUED] jQuery plugin that makes it easy to validate user input while keeping your HTML markup clean from javascript code.
972 stars 476 forks source link

CC expiry: link a month and a year dropdown to validate for date in future? #704

Open cretace opened 6 years ago

cretace commented 6 years ago

Just a question, not an issue:

This is for credit card expiry dates. Two dropdowns: one for month, one for year. Is there a way to link them and validate for date in the future?

cretace commented 6 years ago

Using slects with ids and bypassing the 'value' returned - I'm sure it can be refined but it works : : : : data-validation='expiry_date'

$.formUtils.addValidator({ name : 'expiry_date', validatorFunction : function(value, $el, config, language, $form) {

var usermo=$('#exp_m').val();
var useryr=$('#exp_y').val();
usermo= (usermo.length == 1)? '0'+usermo : usermo;
user_yrmo=useryr+usermo;

var dt = new Date();
var mo=(dt.getMonth()+1).toString();
mo= (mo.length == 1)? '0'+mo : mo;
var yrmo = dt.getFullYear().toString();
yrmo=yrmo+mo;
if(user_yrmo>=yrmo){
    $('#exp_m, #exp_y').css({"border-color": "#fff",
         "border-width":"0",
         "border-style":"solid"}).removeClass('error');
}else{
    $('#exp_m, #exp_y').css({"border-color": "#ee2200",
         "border-width":"1px",
         "border-style":"solid"}).addClass('error');
}
return(user_yrmo>=yrmo);

}, errorMessage : 'Expiry date is not valid', errorMessageKey: 'expiry_date_invalid' });