У меня очень большая форма со многими полями даты, которые необходимо проверить. По большей части, это довольно просто сделать с плагином 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 несколько ограничены, и мои сотрудники до сих пор не смогли построить что-либо подобное выше.
С другой стороны, это должно быть довольно распространенной проблемой, но я не нашел документированного решения. Так может я что-то упустил?
Спасибо!