JQuery подтвердить дату кредитной карты срок действия в качестве будущей даты - PullRequest
2 голосов
/ 10 июля 2010

Я не могу понять, что это правильно, я могу заставить его отследить прошедшую дату, но не вернуть истину на будущую дату. Мне просто нужно подтвердить дату истечения срока действия кредитной карты в моей форме как на будущее, это не так.не работает, есть идеи?дата должна быть в формате ММ / ГГГГ с "/" между ними.

$.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 Ответ

1 голос
/ 10 июля 2010

На самом деле вы не получаете его, чтобы поймать прошедшее свидание.Если вы передаете дату типа «11/2010» на Date.parse(), она возвращает NaN (или не число), что является логическим эквивалентом возврата false.

.Делая это, чтобы понять, что я имею в виду:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...