如何在 mvc 5 中使用 jquery 全球化和 jquery 验证不显眼
How to use jquery globalize with jquery validate unobtrusive in mvc 5
我使用 mvc 5 但 jquery 验证不显眼将日期验证为 MM/dd/yyyy 并且当我搜索如何使其验证时 dd/MM/yyyy
我发现 jquery globalize 可以实现这一点,但我没有找到当前版本 Globalize v1.1.2
的任何示例
我找到的所有示例都是针对低于 1.x
的版本
景色
<div class="form-group">
@Html.LabelFor(model => model.Date, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Date, "dd/MM/yyyy", new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Date, "", new { @class = "text-danger" })
</div>
</div>
元数据将日期指定为 dd/MM/yyyy
[Required(ErrorMessage = " الحقل مطلوب ")]
[DisplayName("تاريخ ")]
[DisplayFormat(DataFormatString = "{dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }
尽管 jquery 验证不显眼将日期验证为 MM/dd/yyyy
我之前遇到过这个问题,你需要重载 jquery unobtrusive validation date 验证方法 (as answered here),让它知道输入的值是一个日期。通过这样做,您将不需要使用 jquery globalize.
代码
jQuery(function ($) {
$.validator.addMethod('date',
function (value, element) {
if (this.optional(element)) {
return true;
}
var ok = true;
try {
$.datepicker.parseDate('dd/mm/yy', value);
}
catch (err) {
ok = false;
}
return ok;
});
否则,如果您将应用程序设置为使用本地文化,则可以使用 this
jQuery(function ($) {
$.validator.addMethod('date', function (value, element) {
var d = new Date();
return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));
});
});
我使用 mvc 5 但 jquery 验证不显眼将日期验证为 MM/dd/yyyy 并且当我搜索如何使其验证时 dd/MM/yyyy
我发现 jquery globalize 可以实现这一点,但我没有找到当前版本 Globalize v1.1.2
的任何示例我找到的所有示例都是针对低于 1.x
的版本景色
<div class="form-group">
@Html.LabelFor(model => model.Date, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Date, "dd/MM/yyyy", new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Date, "", new { @class = "text-danger" })
</div>
</div>
元数据将日期指定为 dd/MM/yyyy
[Required(ErrorMessage = " الحقل مطلوب ")]
[DisplayName("تاريخ ")]
[DisplayFormat(DataFormatString = "{dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }
尽管 jquery 验证不显眼将日期验证为 MM/dd/yyyy
我之前遇到过这个问题,你需要重载 jquery unobtrusive validation date 验证方法 (as answered here),让它知道输入的值是一个日期。通过这样做,您将不需要使用 jquery globalize.
代码
jQuery(function ($) {
$.validator.addMethod('date',
function (value, element) {
if (this.optional(element)) {
return true;
}
var ok = true;
try {
$.datepicker.parseDate('dd/mm/yy', value);
}
catch (err) {
ok = false;
}
return ok;
});
否则,如果您将应用程序设置为使用本地文化,则可以使用 this
jQuery(function ($) {
$.validator.addMethod('date', function (value, element) {
var d = new Date();
return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));
});
});