jQuery验证信用卡exp日期作为未来日期

时间:2010-07-09 21:10:21

标签: jquery-validate

我似乎无法做到这一点,我可以让它赶上过去的日期,但不会在未来的日期返回真实。我只需要验证我的表格的信用卡到期日期是将来,这不是工作,任何想法?日期必须采用MM / YYYY格式,其间有“/”。

$.validator.addMethod(
"FutureDate",
function(value, element) {
    var startdatevalue = (.getMonth/.getYear);
    return Date.parse(startdatevalue) < Date.parse($("#ExpirationDate").val());
}, 
    "End Date should be greater than Start Date."
);

1 个答案:

答案 0 :(得分:1)

你实际上并没有抓住过去的约会。如果您将此“11/2010”的日期传递给Date.parse(),则会返回NaN(或非数字),这与返回false的逻辑等效。< / p>

尝试这样做,看看我的意思:

alert( Date.parse('11/2010') );

如果您添加日期号码,它应该可以使用。类似的东西:

var startdatevalue = '11/1/2010';

当然,此示例使用硬编码日期。如果值存储为11/2010,您可以尝试以下内容:

    // Get the index of the "/"
var separatorIndex = value.indexOf('/');

    // Add "/1" before the separatorIndex so we end up with MM/1/YYYY
var startDate = value.substr( 0, separatorIndex ) + '/1' + value.substr( separatorIndex );

    // Do the same with the expiration date
var expDate = $("#ExpirationDate").val();
separatorIndex = expDate.indexOf('/');
expDate = expDate.substr( 0, separatorIndex ) + '/1' + expDate.substr( separatorIndex );

    // Return the comparison
return Date.parse(startDate) < Date.parse(expDate);