我似乎无法做到这一点,我可以让它赶上过去的日期,但不会在未来的日期返回真实。我只需要验证我的表格的信用卡到期日期是将来,这不是工作,任何想法?日期必须采用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."
);
答案 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);