以多种格式验证日期时间

时间:2014-11-10 10:13:15

标签: asp.net datetime unobtrusive-validation

要将日期时间输出为隐藏,我使用的是html帮助程序,如:

@Html.HiddenFor(model => model.Foobar.Date)

这将输出一个元素,其中value采用以下格式:

  

2014-11-07 00:00:00

并且验证器需要此格式的日期时间值(不含秒):

  

2014-11-07 00:00

如何让验证器接受这两种格式?

我包括这样的验证:

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

2 个答案:

答案 0 :(得分:0)

然后设置Validator识别的格式:

$("#DiscountPromoCodeValidFrom").datepicker({
    minDate: 0,
    dateFormat: "yy-mm-dd",     
    timeFormat:  "HH:mm",
    onSelect: function(selected) {
              $("#DiscountPromoCodeValidUntil").datepicker("option","minDate", selected)
    }
});

答案 1 :(得分:0)

似乎我可以像这样添加一个非常简单的客户端验证器:

$.validator.addMethod('date', function (value, element, parameters)
{        
    return value.match(/^\d+-\d+-\d+ \d+:\d+(:\d+)?$/) != null;
});

让客户端验证允许有和没有秒的值通过。

服务器端似乎接受两种格式(双重检查)。