Jquery ui datepicker日期格式上的Jquery UI验证错误始终以法语触发

Jquery ui datepicker日期格式上的Jquery UI验证错误始终以法语触发,jquery-ui,validation,format,multilingual,globalization,Jquery Ui,Validation,Format,Multilingual,Globalization,我有一个带有日期字段的表单。这是它在Razor视图中的外观: @Html.TextBoxFor(model => model.TargetDate, string.Format("{0:D}", Model.TargetDate), new { @class = "datePicker" }) 在我的JS文件中,我是这样声明日期选择器的: $.datepicker.setDefaults($.datepicker.regional[Globalize.culture().lan

我有一个带有日期字段的表单。这是它在Razor视图中的外观:

@Html.TextBoxFor(model => model.TargetDate, string.Format("{0:D}", Model.TargetDate),      new { @class = "datePicker" })
在我的JS文件中,我是这样声明日期选择器的:

$.datepicker.setDefaults($.datepicker.regional[Globalize.culture().language]);
$(".datePicker").datepicker({
    dateFormat: Globalize.culture().language == "en" ? "DD, MM dd, yy" : "DD dd MM yy",
});
如您所见,应用程序是多语言的

加载视图时,日期会正确显示在字段中。但是,当我试图更改日期或在应用程序设置为法语时提交表单时,会触发验证错误。这是生成的HTML:

<input class="datePicker hasDatepicker input-validation-error" data-val="true" data-val-date="The field TargetDate must be a date." name="TargetDate" type="text" value="mercredi 16 avril 2014" id="dp1396482596956">

它与英语配合得很好

我正在使用全球化包以及Jquery-2.1.0和Jquery-ui-1.10.1


知道是什么导致了验证吗?我认为格式不对?

我找不到任何解决方案来修复验证,所以我做了一个变通办法:我添加了一个文本框。第一个文本框包含格式化和本地化的datepicker日期,并且未映射到viewmodel,因此验证将正常。datepicker更新第二个不可见的字段,该字段以标准格式映射到viewmodel

我在视图中添加了一个EditorTemplate

@Html.EditorFor(model => model.TargetDate, "GoalTargetDate")
这就是我的GoalTargetDate.cshtml的样子

@model DateTime?

<span class="date setDate @(Model.HasValue ? string.Empty : "noDisplay")">
@Language.Goals.By    
<input class="datePicker" value="@(Model.HasValue ? Model.Value.ToString("D") : string.Empty)" />    
@Html.TextBoxFor(model => model, Model.HasValue ? Model.Value.ToString("yyyy-MM-dd") : null, new { @class = "dateValue noDisplay" })
</span>

<span class="date addDate @(Model.HasValue ? "noDisplay" : string.Empty)">Add date</span>
$.datepicker.setDefaults($.datepicker.regional[Globalize.culture().language]);
$(".datePicker").each(function() {
    $(this).datepicker({
        dateFormat: Globalize.culture().language == "en" ? "DD, MM dd, yy" : "DD dd MM yy",
        altField: $(this).closest(".setDate").find(".dateValue"),
        altFormat: "yy-mm-dd"
    });
});