Как мне проверить, что дата окончания больше даты начала? - PullRequest
1 голос
/ 11 октября 2011

Я использовал другой ответ , чтобы решить мою проблему.

jQuery.validator.addMethod("greaterThan", function(value, element, params) {
    return new Date(value) > new Date($(params).val());
}, 'Must be greater than {0}.');

Однако мое поле даты представляет собой текстовое поле и отформатировано как dd-mm-yyyy.Как мне изменить этот код, чтобы проверка работала?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2013
function ValidateEndDate() {
        var startDate = $("txtfromdate").val();
        var endDate = $("txttodate").val();
        if (startDate != '' && endDate !='') {
            if (Date.parse(startDate) > Date.parse(endDate)) {
                $("txttodate").val('');
                alert("Start date should not be greater than end date");
            }
        }
        return false;
    }
0 голосов
/ 11 октября 2011

Сначала вам нужно будет проанализировать значение вашего текстового поля, чтобы получить из него дату. Наилучшим способом были бы регулярные выражения:

Ваше тело функции валидатора должно быть (пояснения во встроенных комментариях):

// date parsing regular expression
var rx = /([0-2]?\d|3[01])-(0?\d|1[0-2])-(\d{4})/i;

// get textbox value
var val = $(params).val();

// default date
var date = new Date();

// parse date if entered correctly
if (rx.test(val))
{
    // get date parts
    var result = rx.exec(val);

    // generate date instance
    date = new Date(result[3], result[2]-1, result[1]);
}

// validate dates
return new Date(value) > date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...