У меня включена проверка на стороне клиента с jquery.validate.js
и jquery.unobtrusive.ajax.js
, указанными на моей странице. Я использую @Html.TextBoxFor()
для создания входных данных в форме.
Проверка на стороне клиента работает правильно, за исключением дат.
Если я пытаюсь ввести письмо, я получаю ошибку на стороне клиента, и это здорово.
Если я ввожу явно недействительную дату, такую как 02/77/2018
, я получаю ошибку на стороне клиента точно так же, как ожидалось / желательно, как и любой другой тип, который не проходит проверку.
Однако, если я введу только целое число для даты (например, 111
), она пройдет проверку. Кто-нибудь знает почему?
К счастью, он не проходит мою проверку на стороне сервера в контроллере, но все остальные мои проверки выполняются на стороне клиента, и я хотел бы, чтобы все было согласованно. Я мог бы написать собственный код для проверки формата даты, но, похоже, должен быть более простой способ убедиться, что ввод выполняется в формате MM/dd/yyyy
или MM-dd-yyyy
.
Чтобы воспроизвести проблему, обратитесь к this DotNetFiddle
- Ввести
A
в текстовое поле и выйти - сообщение об ошибке отображается
- Ввести
111
в текстовое поле и выйти - сообщение об ошибке исчезнет
- Ввести
11112018
в текстовое поле и выйти - сообщение об ошибке появляется снова
- Введите
111
снова и сообщение об ошибке исчезнет
- Нажмите сохранить - форма отправлена, и на сервере появится сообщение об ошибке