Полная проверка даты и времени с использованием проверки jQuery - PullRequest
0 голосов
/ 23 ноября 2011

Я использую встроенную проверку jQuery

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

Пока работает отлично на всех полях, кроме datetime. Это хорошо, но не дурак. Я могу печатать только цифры и косые черты.

Но это означает, что я могу набрать 3/4//4///4//, что, конечно, возвращает нуль-параметр при отправке, поскольку он больше не подходит для datetime (Я использую DatePicker, чтобы выбрать это, но вы все еще можете ввести в поле.)

Так что мне нужно:

  • любой способ убедиться, что он имеет ##/##/#### формат
  • или для предотвращения возможности ручного ввода в поле используйте только средство выбора даты и времени

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

В конце я использовал атрибут Regex в моей модели: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.regularexpressionattribute.aspx

[RegularExpression(@"^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$", ErrorMessage = "Must be a valid date of format dd/mm/yyyy.")]

Это проверяется в форме дд / мм / гггг и обеспечивает действительные даты, включая високосные годы.

EDIT:

Лучшим способом сделать такие проверки были бы Пользовательские атрибуты проверки. http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute.aspx

Google это для учебников.

1 голос
/ 23 ноября 2011

Вы можете использовать атрибут «только для чтения» в блоке, однако он по-прежнему позволяет пользователю выделять текст для копирования и т. Д. Я обычно предпочитаю использовать атрибут disabled, поскольку это не позволяет пользователю манипулировать или использовать блок. Единственным недостатком использования disabled является то, что поле не будет отправлено при отправке формы, но если это не проблема, я предпочитаю использовать этот атрибут.

Другой вариант - написать собственную функцию javascript для выполнения проверки. У меня есть один, который я написал где-то давным-давно, и я мог бы помочь вам, если вы хотите использовать этот метод.

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