我有奇怪的问题。我的日期验证在 Chrome 中不起作用。我已经尝试过这个答案,但它对我不起作用。
我的模型中有这个:
[Display(Name = "Date")]
[DataType(DataType.Date)]
public DateTime Date { get; set; }
我的观点:
<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)
</div>
$(document).ready(function () {
$('.picker').datepicker({
dateFormat: 'dd.mm.yy',
changeMonth: true,
changeYear: true,
selectOtherMonths: true
});
});
在 Opera 和 Firefox 中一切正常,但 Chrome 不喜欢这种类型的日期。我不断收到以下错误The field 'Date' must be a date
。
有任何想法吗?
更新
当代码在局部视图中时,似乎存在问题。当我将该代码复制到主页时,验证工作正常。
我在我的主视图中插入部分视图,就像这样:
@Html.Partial("_CreateOrEdit", Model)
上面的代码在局部视图中:
@model Pro.Web.Models.Model
<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)
$(document).ready(function () {
$('.picker').datepicker({
dateFormat: 'dd.mm.yy',
changeMonth: true,
changeYear: true,
selectOtherMonths: true
});
</script>
});
更新2
毕竟它不起作用。有时有效,有时无效。我在日期上点击了几次,有时验证通过了。对于同一日期,可能有好的和错误的验证。
这是日期字段的输出 html:
<div class="editor-field">
<input class="picker" data-val="true" data-val-date="The field Date must be a date." data-val-required="The Date field is required." id="date" name="Item.Date" type="text" value="1.1.0001. 0:00:00" />
<span class="field-validation-valid" data-valmsg-for="Item.Date" data-valmsg-replace="true"></span>
</div>