如果问题很明显,我深表歉意,但我不明白为什么它突然不起作用。我有一个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 中设置。
我错过了一些明显的事情吗?谁能告诉我我在这里做错了什么?
我不确定是否有必要,但日期选择器所在的表单是这样创建的:
@using (
Html.BeginForm(
Html.BeginForm(
"Create",
"Task",
FormMethod.Post,
new { id = "taskCreateForm" }
)
)
)
附言。日期字符串实际上可以在 Firefox 中正常工作并发布,但在 Chrome 中则不然
任何帮助表示赞赏
EDIT:
当我禁用不显眼的 js 验证时,问题就消失了:
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>
我有一种感觉,这与此有关,并尝试从模型注释中删除 [Required] 和 [DataType(DataType.Date)],但这并没有解决问题。
不知道如何保留不显眼的 js 以及如何让英国日期字符串正常工作,但我越来越倾向于编写自己的表单 javascript 验证,而不是甚至担心内置的东西,这似乎从来没有工作过任何比“必需的”验证检查更复杂的事情..