抱歉,如果这个问题很明显但我无法弄清楚为什么它突然不工作了。我有一个jQuery日期选择器,一直以来都很好用,但突然间,当我尝试提交日期选择器所在的表单时,日期选择器会重新出现,就好像我提交的日期是无效的一样。我已经使用以下代码将我的日期设置为英国风格:
<script type="text/javascript">
$(document).ready(function () {
$('.date').datepicker({ dateFormat: "dd/mm/yy", minDate: 0 });
});
</script>
我在视图中这样设置了日期选择器:
@Html.TextBox("DateDue", "", new { @class = "date" })
我认为某个地方需要选择的日期字符串必须符合美国格式(因为它会提交一个有效的美国日期(mm/dd/yyyy),但不是英国格式,即使在JavaScript中已经设置)。
我是否遗漏了一些明显的东西?有人能告诉我我在这里做错了什么吗?
我不确定是否必要,但是创建datepicker的表单如下:
@using (
Html.BeginForm(
Html.BeginForm(
"Create",
"Task",
FormMethod.Post,
new { id = "taskCreateForm" }
)
)
)
PS. 这个日期字符串在Firefox中可以正常使用并发布,但在Chrome中无法使用。
非常感谢任何帮助。
编辑:
当我禁用不显眼的js验证时,问题消失了:
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>
我有一种感觉这与此有关,尝试从模型注释中删除[Required]和[DataType(DataType.Date)],但这没有起作用。
不确定如何保留不显眼的js并使英国日期字符串正常工作,但我越来越倾向于编写自己的表单javascript验证,而不是费心去使用内置的东西,因为它似乎永远无法处理比“必填”验证检查更复杂的内容。