jQuery Validator проверяет два формата в одном поле - PullRequest
0 голосов
/ 06 июня 2018

У меня есть форма с несколькими полями даты, каждое из которых имеет уникальное имя и поле идентификатора.Я хочу подтвердить дату как дд / мм / гггг .Я использую cms fuelcms на основе php codeigniter, который автоматически генерирует поля даты с атрибутами данных валидатора.Я установил правило для проверки для формата dateITA (дд / мм / гггг), но когда я ставлю дату, мне кажется, что нужно проверить два формата:

  1. дд / мм / гггг
  2. мм / дд / гггг

Я не знаю, что является причиной проблемы, поскольку я отключил свое правило, поэтому теперь оно проверяется по мм / дд / гггг иЯ не знаю, где он устанавливает это правило, потому что по умолчанию используется dateISO (гггг-мм-дд).

Как мне добиться желаемого эффекта?

HTML

<input type="text" name="date_of_birth" value="" 
    class="datepicker field_type_date date hasDatepicker" size="12" 
    placeholder="dd/mm/yyyy" required="" data-date_format="dd/mm/yy" 
    data-first_day="0" data-show_on="focus" id="date_of_birth" autocomplete="bday" 
    aria-required="true">

JS

$('#job-form').validate({
    errorClass:'small text-danger',
    rules: {
        date_of_birth: {
            dateITA: true
        }
    }
});

#job-form - идентификатор формы

1 Ответ

0 голосов
/ 07 июня 2018

Ваш код:

jsfiddle.net / vomu9rf7

12/12/2018 действителен, но оба значения 31/12/2018 и 12/31/2018 недействительны.Это связано с тем, что встроенный атрибут class содержит date, что автоматически вызывает метод date проверки jQuery.Поскольку вы также объявляете dateITA, плагин одновременно применяет два разных правила даты к вашему полю ... date и dateITA, которые конфликтуют друг с другом.

Удалите класс date, и правило dateITA работает нормально:

DEMO: jsfiddle.net / r1kwjv35 /

...