【发布时间】:2011-11-15 15:13:34
【问题描述】:
如果问题很明显,但我不知道为什么它突然不起作用,我深表歉意。我有一个 jquery datepicker,只要我记得,它就一直工作正常,但是突然之间,当我尝试提交 datepicker 在 datepicker 上的表单时,好像我提交的日期无效一样重新出现。我已经使用以下代码行将日期设置为英国风格:
<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" }
)
)
)
PS。日期字符串实际上可以在 Firefox 中正常工作和发布,但在 Chrome 中没有问题
任何帮助表示赞赏
编辑:
当我禁用不显眼的 js 验证时,问题就消失了:
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>
我觉得这与此有关,并尝试从模型注释中删除 [Required] 和 [DataType(DataType.Date)],但这并没有成功。
不确定如何保留不显眼的 js 以及让英国日期字符串正常工作,但我越来越倾向于为表单编写自己的 javascript 验证,而不是为内置的东西烦恼,这似乎从来没有用于比“必需”验证检查更复杂的工作..
【问题讨论】:
-
那些@-前缀行是什么? (这不是 jQuery...)
-
是的,很抱歉,这是剃刀(我认为?),我正在使用 MVC3
-
除此之外,您是否更改了页面上的任何 javascript?这可能是其他地方的错误。
-
我确实意识到我两次声明了日期选择器的默认值,谢谢帕特里夏。但即使有了这个修复,问题仍然存在
标签: jquery asp.net-mvc-3 post razor datepicker