Dev*_*ave 5 jquery post datepicker razor asp.net-mvc-3
如果问题很明显但我无法弄清楚为什么它突然不起作用,我深表歉意.我有一个jquery datepicker,只要我记得就一直工作正常,但突然间,当我尝试提交datepicker在datepicker上的表单重新出现时,好像我提交的日期无效.我已经使用以下代码行将我的日期设置为英国风格:
<script type="text/javascript">
$(document).ready(function () {
$('.date').datepicker({ dateFormat: "dd/mm/yy", minDate: 0 });
});
</script>
Run Code Online (Sandbox Code Playgroud)
我在我的视图中设置了datepicker,如下所示:
@Html.TextBox("DateDue", "", new { @class = "date" })
Run Code Online (Sandbox Code Playgroud)
我认为有些事情要求选择的日期字符串采用美国格式(因为它将提交有效的我们日期(mm/dd/yyyy),但不提供英国格式,即使它已在javascript中设置.
我错过了一些明显的东西吗 谁能告诉我这里我做错了什么?
我不确定是否有必要,但是datepicker所在的表单是这样创建的:
@using (
Html.BeginForm(
Html.BeginForm(
"Create",
"Task",
FormMethod.Post,
new { id = "taskCreateForm" }
)
)
)
Run Code Online (Sandbox Code Playgroud)
PS.日期字符串实际上有效,并且在Firefox中没有问题但在Chrome中没有问题
任何帮助赞赏
编辑:
当我禁用不显眼的js验证时,问题就消失了:
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,它与此有关,并试图从模型注释中删除[Required]和[DataType(DataType.Date)],但这并没有成功.
不知道怎么留下不引人注目的js以及让英国日期字符串正常工作,但我越来越多地转向为表单编写我自己的javascript验证而不是甚至打扰内置的东西,这似乎从来没有用过比"必需的"验证检查更复杂的事情..
谷歌搜索给出了很多与本地化/全球化 asp.net mvc 3 验证相关的结果。
这篇文章尤其可能涉及以下内容:
向下滚动到:“全球化 jQuery 非侵入性验证”
这个问题的答案也可能有帮助: Localizing jqueryvalidation with asp.net mvc 3
jQuery 允许您覆盖不同的验证函数,如下所示:
$.validator.methods.number = function (value, element) {
return !isNaN($.parseFloat(value));
}
Run Code Online (Sandbox Code Playgroud)
您可以对日期验证器执行类似的操作,然后针对有效的英国日期的正则表达式运行它。