You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jquery.validate.unobtrusive.js验证生效不显示提示及修改提示语言如何解决

问题修复方案

一、验证功能正常但不展示警告提示的修复方法

按优先级排查解决:

  • 先添加验证提示的默认显示样式,多数情况下是样式缺失导致提示被隐藏:
/* 加入到你的全局样式文件中 */
.field-validation-error {
    color: #dc3545;
    display: block !important;
}
.input-validation-error {
    border-color: #dc3545;
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}
  • 排查下拉框插件的影响:你给下拉框加了data-live-search属性,说明用了Bootstrap Select这类下拉增强插件,插件会隐藏原生的<select>元素,默认的错误提示会绑定到隐藏的原生select后方,导致不可见。需要自定义错误放置逻辑,在所有验证脚本加载完成后添加以下代码:
$.validator.setDefaults({
    errorPlacement: function (error, element) {
        // 处理下拉框插件的错误提示位置
        if (element.attr('data-live-search') === 'true') {
            error.insertAfter(element.next('.bootstrap-select'));
        } else {
            error.insertAfter(element);
        }
    }
});
// 重新初始化unobtrusive验证
$.validator.unobtrusive.parse('#formLink');
  • 检查脚本加载是否重复:确认整个页面没有重复加载jQuery、jquery.validate.js,重复加载会清空之前的验证初始化配置,导致提示无法生成。
  • 调整验证汇总配置:如果需要显示所有客户端错误,可以把asp-validation-summary="ModelOnly"改为asp-validation-summary="All"。

二、修改验证提示信息语言的方法

有两种实现方式:

方式1:使用官方语言包

jquery.validate自带多语言包,在你的jquery-validation/dist/localization目录下找到对应语言的脚本,比如波斯语是messages_fa.js,中文是messages_zh-CN.js,在验证脚本加载完成后引入即可:

<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<!-- 新增语言包引入,放在jquery.validate之后,unobtrusive之前 -->
<script src="~/lib/jquery-validation/dist/localization/messages_fa.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>

方式2:自定义全局提示信息

如果要完全自定义提示内容,可以在验证脚本加载完成后全局覆盖默认消息:

// 示例:改为波斯语自定义提示
$.extend($.validator.messages, {
    required: "این فیلد الزامی است",
    url: "لطفا آدرس معتبر وارد کنید"
    // 其他规则的提示可以按需添加
});

也可以直接在后端模型的属性上通过数据注解指定提示,服务端和客户端验证会自动同步:

public class YourModel
{
    [Required(ErrorMessage = "لطفا درس را انتخاب کنید")]
    public int LessonId { get; set; }

    [Url(ErrorMessage = "لطفا آدرس معتبر وارد کنید")]
    public string Url { get; set; }
    // 其他属性同理
}

内容的提问来源于stack exchange,提问作者user15134192

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:45:00