jQuery验证规则中的信用卡到期日期addMethod将来限制20年

时间:2014-11-09 00:42:33

标签: jquery jquery-validate future credit-card

您好我在jquery验证规则验证规则validator.addMethod上有一些代码,允许输入检查卡到期日的未来日期,即10/2015有效,我想问的是有没有办法添加限制未来20年,目前他们可以进入10/2099或更高的卡有效期。提前谢谢!

这是我的代码,它还需要自定义消息。超过日期范围

<input type="text" name="field_4"  id="field_4" value="">



 $.validator.addMethod(
        "Future",
        function (value, element) {
            var today = new Date();
            var startDate = new Date(today.getFullYear(),today.getMonth(),1,0,0,0,0);
            var expDate = value;
            var separatorIndex = expDate.indexOf('/');
            expDate = expDate.substr( 0, separatorIndex ) + '/1' + expDate.substr( separatorIndex );
            return Date.parse(startDate) <= Date.parse(expDate);
        },
        "Must be a valid Expiry Date"
        );

        $(function() {

        $( "#Form" ).validate({
          rules: {    
            field_4: {
                required: true,
                Future: true,
                minlength: 7
                },

1 个答案:

答案 0 :(得分:8)

一种方式:

function (value, element) {
    var today = new Date();
    var thisYear = today.getFullYear();
    var expMonth = +value.substr(0, 2);
    var expYear = +value.substr(3, 4);

    return (expMonth >= 1 
            && expMonth <= 12
            && (expYear >= thisYear && expYear < thisYear + 20)
            && (expYear == thisYear ? expMonth >= (today.getMonth() + 1) : true))
}