Переопределить дату jquery - PullRequest
6 голосов
/ 29 июля 2011

Я нашел этот полезный фрагмент кода, который позволяет датам Великобритании работать в Chrome, но я не уверен, как это реализовать.Он переопределяет функциональность даты по умолчанию.

date: function(value, element) {
     //ES - Chrome does not use the locale when new Date objects instantiated:
     //return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
     var d = new Date();
     return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));
}, 

Как я могу добавить это в проверку jQuery для переопределения функциональности по умолчанию.

Здесь Я нашел пример кода

1 Ответ

19 голосов
/ 16 ноября 2011

Вы должны вызвать метод validator.addMethod после загрузки библиотеки jquery.validate следующим образом:

$(function () {
    // Replace the builtin US date validation with UK date validation
    $.validator.addMethod(
        "date",
        function (value, element) {
            var bits = value.match(/([0-9]+)/gi), str;
            if (!bits)
                return this.optional(element) || false;
            str = bits[1] + '/' + bits[0] + '/' + bits[2];
            return this.optional(element) || !/Invalid|NaN/.test(new Date(str));
        },
        "Please enter a date in the format dd/mm/yyyy"
    );
});

Обратите внимание, что я использовал другой способ проверки ввода, поскольку код в вашем вопросе не будетработа (toLocaleDateString не принимает параметр).Вы также можете изменить это, чтобы использовать библиотеку datejs, как указал Mrchief в комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...