如果您还需要什么,请告诉我。
验证过去是有效的,但是我改用了datepicker。我注意到客户端验证并不总是受到影响。可能需要选择几个日期才能到达断点。但是,如果你选择一个日期,并且仍然在文本框中并按回车键,它每次都有效。
我确实有正确的脚本加载和在视图中。我的验证方法是
[HttpPost]
public JsonResult CheckEndDate(DateTime CourseEndDate, DateTime CourseStartDate)
{
return Json(CourseStartDate < CourseEndDate);
}
我的模型属性
[Remote("CheckEndDate", "Course", AdditionalFields = "CourseStartDate", HttpMethod = "POST",
ErrorMessage = "Must end after Start Date")]
查看东西
@model Nullable<DateTime>
@{
DateTime date = DateTime.Now;
if (Model != null) {
date = (System.DateTime) Model;
}
}
@Html.TextBox("", String.Format("{0:MMM dd, yyyy}", date),
new { @class = "datefield", type = "text" })
<td class="table-row">
@Html.EditorFor(model => model.CourseStartDate)
@Html.ValidationMessageFor(model => model.CourseStartDate)
</td>
<td class="table-row">
@Html.EditorFor(model => model.CourseEndDate)
@Html.ValidationMessageFor(model => model.CourseEndDate)
</td>
//Date field datepicker hookup
$('.datefield').datepicker({dateFormat:'M dd, yy'});
重新说明,我没有使用日期选择器,除了谷歌,我想要一个跨浏览器的。每次更改日期都有效。现在它工作了一半的时间或只在按下回车。
在我的项目中,我这样做了验证:
$(".datepicker").datepicker().on('changeDate', function (ev) {
//Your validation goes here
if(!good){
ev.setValue("");
alert("Your date is invalide!");
}
});