Определение определенного значения поля как семантически равного пустому в проверке jQuery - PullRequest
0 голосов
/ 21 сентября 2010

У меня очень большая форма со многими полями даты, которые необходимо проверить. По большей части, это довольно просто сделать с плагином jQuery Validation. Но я нашел вариант использования, в котором я не совсем уверен, что «правильное» дизайнерское решение:

У меня есть поле даты, значение которого по умолчанию является абстрактным примером:

<input id="date_field" name="date_1" class="" type="text" value="tt.mm.jjjj" maxlength="10"/>

Я хочу, чтобы это поле было необязательным. Итак, в опции валидатора я объявляю:

date_field:         {date: true}

Конечно, это не правильно, потому что, если пользователь ничего не ввел и, следовательно, оставил значение по умолчанию «dd.mm.yyyy», валидатор проверит, является ли значение датой, а это не так, и выбросить ошибку.

Я мог бы написать свой собственный валидатор даты, который просто добавляет «dd.mm.jjjj» в список правильных дат. Но в другом случае использования в той же форме у меня есть поле, которое является и датой, и обязательным. Если бы я использовал пользовательский валидатор в этом поле, то форма будет проверяться, даже если пользователь ничего не вводил самостоятельно. Но поскольку пользовательский валидатор допускает принятие строки "dd.mm.jjjj", а это строковое поле, очевидно, не пустое, форма будет принята.

Итак, на мой взгляд, оптимальным решением было бы «расширить» случаи, когда валидатор интерпретирует поле как пустое.

Другими словами, я хотел бы сказать валидатору: «Эй, поля даты также пусты, если они имеют эту строку как значение».

К сожалению, мои навыки jQuery / Javascript несколько ограничены, и мои сотрудники до сих пор не смогли построить что-либо подобное выше.

С другой стороны, это должно быть довольно распространенной проблемой, но я не нашел документированного решения. Так может я что-то упустил?

Спасибо!

1 Ответ

0 голосов
/ 21 сентября 2010

Я закончил тем, что просто расширил jQuery Validator своим собственным правилом «required», как это делает локализация «date». Было довольно очевидно:)

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