如何仅在提交时显示 jQuery 验证错误容器

2024-01-02

我正在努力使验证插件 http://docs.jquery.com/Plugins/Validation工作。它适用于各个字段,但当我尝试包含包含所有错误的错误容器的演示代码时,我遇到了问题。问题是,当我在所有字段中时,它显示包含所有错误的容器,但我想仅当用户按下提交按钮时才显示错误容器(但在失去焦点时仍然在控件旁边显示内联错误)。

问题在于容器中的消息。当我按照下面的容器答案中提到的那样删除代码时,容器输出仅以纯文本形式显示错误数。

获取详细错误消息列表的技巧是什么?我想要的是当用户按下选项卡按钮时在错误的控件旁边显示“错误”,并在按下提交时在最后得到所有内容的摘要。那可能吗?

所有输入的代码均来自此处:

    $().ready(function() {
        var container = $('div.containererreurtotal');

        // validate signup form on keyup and submit
        $("#frmEnregistrer").bind("invalid-form.validate", function(e, validator) {
          var err = validator.numberOfInvalids();
          if (err) {
            container.html("THERE ARE "+ err + " ERRORS IN THE FORM")
            container.show();
          } else {
            container.hide();
          }
        }).validate({
                    rules: {
                            nickname_in: {
                                    required: true,
                                    minLength: 4
                            },
                            prenom_in: {
                                    required: true,
                                    minLength: 4
                            },
                            nom_in: {
                                    required: true,
                                    minLength: 4
                            },
                            password_in: {
                                    required: true,
                                    minLength: 4
                            },
                            courriel_in: {
                                    required: true,
                                    email: true
                            },
                            userdigit: {
                                    required: true
                            }
                    },
                    messages: {
                            nickname_in: "ERROR",
                            prenom_in: "ERROR",
                            nom_in: "ERROR",
                            password_in: "ERROR",
                            courriel_in: "ERROR",
                            userdigit: "ERROR"
                    }

                    ,errorPlacement: function(error, element){
                            container.append(error.clone());
                            error.insertAfter(element);
                    }

            });
    });

首先你的容器应该使用ID而不是类..(我假设ID是'containererreurtotal')

然后试试这个..

    $().ready(function() {

        $('div#containererreurtotal').hide();

        // validate signup form on keyup and submit
        $("#frmEnregistrer").validate({
            errorLabelContainer: "#containererreurtotal",
            wrapper: "p",
            errorClass: "error",
            rules: {
                nickname_in: { required: true, minLength: 4 },
                prenom_in: { required: true, minLength: 4 },
                nom_in: { required: true, minLength: 4 },
                password_in: { required: true, minLength: 4 },
                courriel_in: { required: true,  email: true },
                userdigit: { required: true }
            },
            messages: { 
                nickname_in: { required: "Nickname required!", minLength: "Nickname too short!" },
                prenom_in: { required: "Prenom required!", minLength: "Prenom too short!" },
                nom_in: { required: "Nom required!", minLength: "Nom too short!" },
                password_in: { required: "Password required!", minLength: "Password too short!" },
                courriel_in: { required: "Courriel required!", email: "Courriel must be an Email" },
                userdigit: { required: "UserDigit required!" }
            },
            invalidHandler: function(form, validator) {
                $("#containererreurtotal").show();
            },
            unhighlight: function(element, errorClass) {
                if (this.numberOfInvalids() == 0) {
                    $("#containererreurtotal").hide();
                }
                $(element).removeClass(errorClass);
            }    

        });
    });

我在这里假设您需要一个

标签来包围每个单独的错误。通常,我使用

    容器作为实际容器(而不是您使用的名为“containererreurtotal”的 div),并使用
  • 来表示每个错误(此元素在“wrapper”行中指定)

如果将 #containererreurtotal 指定为 display: none;在你的CSS中,那么你不需要ready函数中的第一行( $('div#containererreurtotal').hide(); )

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅在提交时显示 jQuery 验证错误容器 的相关文章

随机推荐

  • Windows 命令行/shell - 丢弃 UTF-8 BOM

    这个问题还在继续关于有选择地将一个文件中的行附加到另一个文件的另一个问题 https stackoverflow com questions 12838802 windows command line shell while appendi
  • 将 C# 数组传递给 javascript

    我在 c 的 page load 中有一个数组 我想在 java 脚本中访问它 但不知道该怎么做 float energyArray new float count for int i 0 i lt count i energyArray
  • 在 vba (Excel/OneDrive) 中关闭自动保存

    我正在尝试关闭 Excel 文档的自动保存功能 Excel 365 同时将文件保存在 OneDrive 上 做一些研究AutoRecover Enabled False Application 应该是正确的属性 但由于某种原因我无法让它工作
  • JSF:绝对需要将昂贵的业务逻辑放入访问器方法中。如何避免多次调用这种昂贵的BL

    这是我的困境 我知道在 JSF 中访问器方法将被多次调用 因此我知道不要将昂贵的业务逻辑 如数据库访问 放在访问器方法中 如果我绝对必须将业务逻辑放入我的访问器中怎么办 这种情况我该怎么办 以下是我的困境的高级布局 莫贾拉 2 1 GF 3
  • 执行时活动指示器不显示

    我试图在用户点击登录按钮时显示活动指示器 如果我把startActivityIndicator 代码在viewDidLoad 它完全按照预期显示在屏幕上 当我将其作为第一步执行时btnSignIn 它永远不会出现 有点迷失 所以我希望堆栈大
  • 双向非对称加密如何工作?

    假设我们有爱丽丝和鲍勃 Alice 向 Bob 发送一条她用 Bob 的公钥加密的消息 鲍勃是唯一可以使用他的私钥解密它的人 但他如何确定消息来自爱丽丝呢 假设他回复并使用 Alice 的公钥加密他的消息 只有爱丽丝才能解密该消息 但她如何
  • 如何修改 Jersey 过滤器中的查询参数

    根据泽西岛文档 https jersey java net documentation latest filters and interceptors html 当您想要修改任何请求或响应参数 例如标头 时 可以使用过滤器 所以我相信修改查
  • 应用 css 媒体查询进行响应式设计时 css 发生变化

    我正在为我的网站应用 CSS 媒体查询 以便在移动设备和笔记本电脑上工作 我正在使用以下移动媒体查询 media only screen and min device width 321px and max device width 480
  • 单击图像,获取坐标

    我有一个标准的 HTML 图像标签 其中有一个图像 大小为 100 x 100 像素 我希望人们能够单击图像 并将他们单击的 X 和 Y 传递到函数中 坐标需要相对于图像的顶部和左侧 我认为你在谈论
  • kendo ui 服务器中的网格过滤、排序和分页

    我正在使用kendo grid 想要在服务器中执行过滤 排序和分页 我知道我应该添加到数据源 serverPaging true serverSorting true 但是我如何告诉网格 数据源应该使用哪个 url 来进行排序 过滤等 如果
  • 可见窗口高度而不是$(window).height();

    有什么方法可以从内部获取整个页面的可见高度iframe window height 给我iframe身高 如果您使用框架 则可以使用以下方法获取最外面窗口的高度window top在 jQuery 构造函数中 高度为window top h
  • 我的用户站点中的文件夹是否与项目站点冲突?

    GitHub 页面 https pages github com 允许每个用户拥有一个用户站点 也许是主页 并且无限制项目地点 当您设置您的用户站点 you must为存储库命名 username github io where usern
  • 跨换行匹配正则表达式?

    我有一个正则表达式 lt lof lt gt gt 在单行输入上完美工作和匹配 但是 如果输入在两个 部分之间包含换行符 则它根本不匹配 在这种情况下 忽略任何换行符的最佳方法是什么 使用以下命令创建正则表达式对象RegexOptions
  • 确定 OpenCL 工作组大小的限制因素?

    我正在尝试在资源较少的嵌入式 GPU 上运行一些为桌面显卡编写的 OpenCL 内核 特别是 桌面版本假设始终支持至少 256 个工作组大小 但基于 Mali T628 ARM 的 GPU 仅保证 64 工作组大小 事实上 一些内核报告CL
  • Xpath 节点选择 - 如何选择 2 个不同的元素?

    我尝试通过 HtmlAgilityPack 选择多个节点 但失败了 所以 我想做的是收集a节点和li面包屑中的节点div元素 这是我尝试过的 string srxPathOfCategory div class breadcrumbs li
  • Rails 控制器返回 200 OK 时未触发 jquery ajax 成功回调

    我正在执行一个标准的 ajax 请求 并且有一个 Rails 控制器操作 def up vote resource votes increment render nothing gt true end 这不会触发我的 jquery ajax
  • SLURM 集群中出现错误 - 检测到 1 个 oom-kill 事件:如何改进正在运行的作业

    我在 SLURM 集群中工作 同时运行多个进程 在多个输入文件上 并使用相同的 bash 脚本 在作业结束时 进程被终止 这是我得到的错误 slurmstepd error Detected 1 oom kill event s in st
  • 为什么运行管道时会向 GCS 写入零字节文件?

    我们的工作 管道正在将 ParDo 转换的结果写回 GCS 即使用TextIO Write to gs 我们注意到 当作业 管道完成时 它会在输出存储桶中留下大量 0 字节文件 管道的输入来自 GCS 的多个文件 因此我假设结果是分片的 这
  • Python functools lru_cache 与实例方法:释放对象

    我该如何使用functools lru cache在类内部而不泄漏内存 在下面的最小示例中foo尽管超出范围并且没有引用者 除了lru cache from functools import lru cache class BigClass
  • 如何仅在提交时显示 jQuery 验证错误容器

    我正在努力使验证插件 http docs jquery com Plugins Validation工作 它适用于各个字段 但当我尝试包含包含所有错误的错误容器的演示代码时 我遇到了问题 问题是 当我在所有字段中时 它显示包含所有错误的容器