Пользовательская проверка формата даты с помощью jQuery datepicker (не может избавиться от проверки даты в США) - PullRequest
6 голосов
/ 28 июня 2011

Я почти у цели.Я создал локализованный инструмент выбора даты jQuery, добавил проверку пользовательского формата, но не могу избавиться от (по умолчанию?) Проверки формата даты в США.

Я отображаю поле даты следующим образом:

...
@Html.EditorFor(m => m.JobDate)
@Html.ValidationMessageFor(m => m.JobDate)
...

и HTML-код выглядит следующим образом:

<input class="date hasDatepicker" data-val="true" data-val-required="The JobDate field is required." id="JobDate" name="JobDate" value="28.6.2011" type="text"> 
<span class="field-validation-valid" data-valmsg-for="JobDate" data-valmsg-replace="true"></span>

Наконец, я подключаю (в моем файле javascript) элемент управления DatePicker jQuery для обработки моего поля даты:

$(document).ready(function () {
   jQuery.validator.addMethod(
         "hrDateValidator",
         function(value, element) {
               try { jQuery.datepicker.parseDate( 'd.m.yy', value); return true; }
               catch(e){return false;}
            },
            "Datum nije u formatu d.m.gggg"
         );

   $('.date').datepicker({ dateFormat: "d.m.yy" });
   $.datepicker.setDefaults($.datepicker.regional["hr"]);
   $('.date').rules("remove");
   $('.date').rules("add", { hrDateValidator: true });      

});

Однако теперь у меня есть два правила проверки, действующих в поле даты: дата в США и эта пользовательская дата.

Я не могу избавиться от этого правила даты в США, почему эта строка $('.date').rules("remove"); не удаляет правило даты в США?

Спасибо,

Игорь

Ответы [ 2 ]

13 голосов
/ 28 июня 2011

Вы можете попробовать «перезаписать» метод проверки даты вместо добавления нового:

jQuery.validator.methods["date"] = function (value, element) { ... } 
3 голосов
/ 03 января 2013
         date: function (value, element) {

            try { jQuery.datepicker.parseDate('d.m.yy', value); return true; }
            catch (e) { return false; }

        },
...