更改 mvc 表单验证错误消息
Change mvc form validation error messages
我正在尝试更改我的表单字段的 data-val-required
属性,以便出现通用的 "required"。现在我知道我可以使用以下方法做到这一点:
@Html.TextBoxFor(model => model.Name, new { data_val_required ="required" })
但我不想 "hard code" 那样将它放入模板中,我更希望模型使用其上设置的必需属性,然后使用类似这样的东西通过 js 覆盖它:
$('input, select, textarea').each(function () {
var element = $(this);
if (element.data('val-required')) {
element.data('val-required', 'required');
}
});
我已经 运行 准备好文档并检查了数据属性是否已更改(它们已经更改),但显然这发生得太晚了,验证无法注意到它。所以我需要知道 MVC 何时绑定它的表单验证,以便我可以 运行 之前或如何仅更改客户端的错误消息。
我查看了页面的源代码,但看不到验证实例化的位置。
对于那些说更改所需属性或在服务器端执行的人,我不想这样做,就好像我禁用了 js 我在表单顶部显示验证摘要,如果他们这样做将毫无用处都只是说需要。这就是为什么我只想做这个客户端
对于那些对解决方案感兴趣的人,以下内容将重置验证消息:
(function () {
$('input, select, textarea').each(function () {
var element = $(this);
if (element.data('val-required')) {
element.attr('data-val-required', 'Required'); // please note this has to be the attr not data
}
});
form = $('form');
form.removeData("validator").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse(form);
});
您真的不想在 JavaScript 中执行此操作并操纵属性,这在 Razor 中完全可以实现。
只需让您的 ValidationSummary
不排除个别 属性 错误:
@Html.ValidationSummary(false)
然后删除所有字段的所有 ValidationMessageFor
。
我认为您可以通过数据注释来实现这一点。只需将模型项目标记为
[Required]
如果您想覆盖错误消息,只需执行此操作
[Required(ErrorMessage = "Name is required")]
看到这个post:Error messages for model validation using data annotations
我正在尝试更改我的表单字段的 data-val-required
属性,以便出现通用的 "required"。现在我知道我可以使用以下方法做到这一点:
@Html.TextBoxFor(model => model.Name, new { data_val_required ="required" })
但我不想 "hard code" 那样将它放入模板中,我更希望模型使用其上设置的必需属性,然后使用类似这样的东西通过 js 覆盖它:
$('input, select, textarea').each(function () {
var element = $(this);
if (element.data('val-required')) {
element.data('val-required', 'required');
}
});
我已经 运行 准备好文档并检查了数据属性是否已更改(它们已经更改),但显然这发生得太晚了,验证无法注意到它。所以我需要知道 MVC 何时绑定它的表单验证,以便我可以 运行 之前或如何仅更改客户端的错误消息。
我查看了页面的源代码,但看不到验证实例化的位置。
对于那些说更改所需属性或在服务器端执行的人,我不想这样做,就好像我禁用了 js 我在表单顶部显示验证摘要,如果他们这样做将毫无用处都只是说需要。这就是为什么我只想做这个客户端
对于那些对解决方案感兴趣的人,以下内容将重置验证消息:
(function () {
$('input, select, textarea').each(function () {
var element = $(this);
if (element.data('val-required')) {
element.attr('data-val-required', 'Required'); // please note this has to be the attr not data
}
});
form = $('form');
form.removeData("validator").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse(form);
});
您真的不想在 JavaScript 中执行此操作并操纵属性,这在 Razor 中完全可以实现。
只需让您的 ValidationSummary
不排除个别 属性 错误:
@Html.ValidationSummary(false)
然后删除所有字段的所有 ValidationMessageFor
。
我认为您可以通过数据注释来实现这一点。只需将模型项目标记为
[Required]
如果您想覆盖错误消息,只需执行此操作
[Required(ErrorMessage = "Name is required")]
看到这个post:Error messages for model validation using data annotations