DateTimePicker的validation无法正常工作
首先我使用这个解决方案来解决我的问题: jQuery日期validationMVC 4 .Net 4.5.1英国日期“必须是日期”错误
- 当我发布一个有效的模型时,一切正常。
- 当我发布没有日期的无效模型时,它也会很好地validation。
- 但是当我发布一个带有日期的无效模型时,它会以exception结束:对象引用未设置为对象的实例。
这是模型中的日期字段:
[DataType(DataType.DateTime)] [DisplayFormat(DataFormatString = "{0:dd.MM.yyyy HH:mm}")] [Display(Name = "Date")] public DateTime Date{ get; set; }
这是create.cshtml中的代码
@Html.LabelFor(model => model.Date, htmlAttributes: new { @class = "control-label col-md-2" }) @Html.TextBoxFor(model => model.Date, "{0:dd.MM.yyyy HH:mm}", new { @Value = ViewBag.Date, @class = "form-control", @id = "datetimepicker" }) @Html.ValidationMessageFor(model => model.Date, "", new { @class = "text-danger" })
Javasript在layout.cshtml中:
jQuery('#datetimepicker').datetimepicker({ format: 'dmY H:i', lang: 'cs', dayOfWeekStart: 1 });
这里是重新设计的jQuery日期validation:
date: function (value, element) { $.culture = Globalize.culture("cs-CZ"); var date = Globalize.parseDate(value, "dd.MM.yyyy HH:mm","cs-CZ"); return this.optional(element) || !/Invalid|NaN/.test(new Date(date).toString()); },
编辑:所以我最终通过将日期函数更改为这样的正则表达式来使其工作:
return value.match(/^(0?[1-9]|[12][0-9]|3[0-1])[/., -](0?[1-9]|1[0-2])[/., -](19|20)?\d{2} ([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/);
- 为什么Asp.Net MVC 5将@ Scripts.Render(“〜/ bundles / jquery”)放在_Layout.cshtml的底部?
- SignalR- Jquery:$ .connection.chathub返回undefined
- 带字幕的多图像文件上传
- 使用Jquery Datepicker的DateFormat错误
- 使用里程表将变量传递给jquery
- Ajax json到MVC5控制器:传递包含集合的对象
- 匹配’密码’和’管理员’不工作的Jqueryvalidation
- Bootstrap 3 Datetimepicker 3.0.0 – 周从星期一开始
- 使用Bootstrap在ASP.NET MVC5中无法运行客户端validation