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

jQuery Validation插件检测到错误但无提示消息,原因何在?

解决jQuery Validator无错误提示文本的问题

核心问题

你遇到的空错误标签问题,主要是因为没显式配置验证错误消息,加上字段规则写法有误,导致插件无法生成正常的提示文本。另外你重复定义了EMAIL的规则,会导致前面的required被覆盖,这也是潜在问题。

具体修复步骤

  1. 合并重复的字段规则
    把EMAIL的两个规则合并成一个对象,避免覆盖:

    var $j = jQuery;
    var OSHform = $j("form");
    OSHform.validate({
      rules: {
        "NAME OF DRIVER": "required",
        "EMAIL": {
          required: true,
          email: true
        },
        "ADDRESS": "required"
      }
    });
    
  2. 添加错误提示消息配置
    为每个字段指定明确的错误文本,尤其是带空格的特殊字段名,确保生成的错误标签有内容:

    var $j = jQuery;
    var OSHform = $j("form");
    OSHform.validate({
      rules: {
        "NAME OF DRIVER": "required",
        "EMAIL": {
          required: true,
          email: true
        },
        "ADDRESS": "required"
      },
      messages: {
        "NAME OF DRIVER": "请填写司机姓名",
        "EMAIL": {
          required: "请填写邮箱地址",
          email: "请输入有效的邮箱格式"
        },
        "ADDRESS": "请填写地址"
      }
    });
    
  3. 自定义错误标签位置(可选)
    由于是PDF转HTML的表单,结构可能特殊,可指定错误标签插入位置,避免被隐藏:

    OSHform.validate({
      // 上述规则和消息配置...
      errorPlacement: function(error, element) {
        // 把错误标签插到对应输入框的后面
        error.insertAfter(element);
      }
    });
    
  4. 优化提交逻辑体验
    没必要用alert提示错误,直接依赖插件的内联错误提示即可,修改success分支代码:

    success: function() {
      const OSHform = $("form").eq(0);
      if (OSHform.valid()) {
        top.document.location.href = "/Adsentry/completed";
      }
      // 移除else里的alert,让内联错误提示直接展示给用户
    },
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:50:44