Jquery 验证 - 在急切验证期间显示验证摘要?

2024-04-07

是否可以使用 jquery 验证来显示验证摘要?

我正在使用 MVC 3(如果重要的话),并且当每个元素失去焦点时我的表单会进行验证:

$('#myform').validate({ onfocusout: function(element) { $(element).valid(); } };

这显示了每个字段上的单独错误,但是我还想在验证摘要块中显示这些错误。但是,该验证摘要仅在提交表单时显示,而不是在失去焦点时显示。

我尝试挂钩 showErrors,但是这只给我当前的字段错误,而不是当前的错误列表。


为了完整起见,这里是表单代码:

@using (Ajax.BeginForm(...))
{

  <div class="field-panel">
    @Html.EditorFor(m => m.PatientID)
    ...

  </div>
  <input type="submit" class="carecon-button-next" value="Next" />
  @Html.ValidationSummary(null, new { @class = "validation-summary" })
}

好吧,我想我已经明白了。

该问题实际上是由于使用 MVC 3 的不显眼验证造成的,因为它为您进行了 jQuery 验证初始化。因此配置验证的唯一方法是使用form.data("validator").settings。然而,试图设置errorLabelContainer通过这种方法,即:

$("#form").data("validator").settings.errorLabelContainer = "#messageBox";

...不起作用,因为 jQuery 的验证仅在其 init() 函数内部使用此值,以配置一堆其他设置,如Containers等。我尝试模拟它的作用,甚至调用$("#form").data("validator").init()设置后再次errorLabelContainer,但这样做会导致奇怪的行为并影响许多其他设置。

所以我采取了不同的方法。首先,我为 MVC 提供了一个位置来放置各个错误字符串,使用@Html.ValidationMessageFor(),并添加display:none使其隐藏:

@using (Ajax.BeginForm(...))
{

  <div class="field-panel">
    @Html.EditorFor(m => m.PatientID)
    @Html.ValidationMessageFor(m => m.PatientID, null, new { style = "display:none"})
    ...

  </div>
  <input type="submit" class="carecon-button-next" value="Next" />
  <ul id="error-summary">
  </ul>
}

然后,在showErrors回调,我将这些字符串复制到验证摘要中after呼叫defaultShowErrors():

    $("#form").data("validator").settings.onfocusout = function (element) { $(element).valid(); };
    $("#form").data("validator").settings.showErrors = function (errorMap, errorList) {
        this.defaultShowErrors();
        $("#error-summary").empty();
        $(".field-validation-error span", $("#form"))
            .clone()
            .appendTo("#error-summary")
            .wrap("<li>");

    };

这给了我想要的行为,当用户填写表单上的字段时,在摘要中显示/隐藏验证错误作为列表。

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

Jquery 验证 - 在急切验证期间显示验证摘要? 的相关文章

随机推荐

  • Android KitKat HttpURLConnection 断开 AsyncTask

    在我的应用程序中 我使用下载文件HttpURL连接 http developer android com reference java net HttpURLConnection html in an 异步任务 http developer
  • 是否可以从 Django 请求检测浏览器刷新?

    是否可以在 Django 请求中检测用户的浏览器刷新 就其本身而言 我相信没有办法仅通过查看请求对象来知道页面是否已刷新 客户可以轻松打开该页面的第二个版本 您还必须保留有关所有请求的一些状态数据 以便比较时间戳等内容 但这只是对实际发生情
  • ASP.NET 2.0 会话超时

    已经有人在本论坛中提出了有关会话超时的问题 如果有人能再次澄清这一点 我将不胜感激 我有一个 asp net 2 0 应用程序 如果用户没有执行任何活动并按下页面上的按钮 他被重定向到 sessionExpired aspx 页面 那么 1
  • Windows XP 中的 inet_pton 或 InetPton 等价物是什么?

    我需要确定特定字符串是否是有效的 IPv4 或 IPv6 地址文字 如果我理解正确的话 在 POSIX 系统上执行此操作的正确方法是使用inet pton将其转换为网络地址结构 看看是否成功 Windows Vista 及更高版本有Inet
  • 在 Qt Creator 中推广小部件

    Qt 创建者可以选择将一个小部件提升为从基本小部件派生的自定义创建的类 我想使用它来将小部件提升为当前项目中的类 Qt 创建者询问我有关类名和头文件名的信息 这些值直接转到 ui文件 然后到ui myform h 问题是该文件可能 通常是
  • 正则表达式:如何匹配没有任何字符重复 3 次的字符串?

    我正在尝试创建一个单一的模式来验证输入字符串 验证规则不允许任何字符连续重复超过 3 次 例如 Aabcddee 已验证 Aabcddde is not有效 因为 3d人物 目标是提供一个可以匹配上述示例之一的正则表达式模式 但不能同时匹配
  • WPF 调度程序的 InvokeAsync 和 BeginInvoke 有什么区别

    我注意到在 NET 4 5 中WPF 调度程序 http msdn microsoft com en us library ms615907 aspx已经获得了一组新的方法来在调度程序的线程上执行东西 称为异步调用 http msdn mi
  • 动态启动和关闭 KafkaListener 只是为了在会话开始时加载以前的消息

    我有一个让 kafkalistener 从头开始 读取消息的工作代码 offset 0 一个主题 始终运行 对于我的用例 消息传递 我需要两件事 始终捕获特定主题 分区的新消息 该消费者始终在运行 并发送到前端 websocket stom
  • 使用 Go 处理水印图像

    我想找一些关于制作水印图像的例子 用Go语言写的 我需要一个 PNG 图像作为水印图像 可以应用于其他格式 PNG GIF JPEG 等 我希望你能给我一些实际的例子 正如已经提到的 您可以使用 image draw 包为图像添加水印 这是
  • 圆圈内的文本 UILabel Swift 3

    我知道这个问题在 SO 中被问了很多次 但我在 Swift 中找不到可靠的答案 甚至一般来说也找不到一个好的答案 我知道这对于 UITextField 是可能的 但 UILabel 是我想使用的 我问是否有人遇到过 UILabel 的扩展
  • 如何更改 Android O / Oreo / api 26 应用程序语言

    我想更改应用程序的语言 并且在 API 26 之前都可以正常工作 对于 api gt 25 我把Locale setDefault Locale Category DISPLAY mynewlanglocale before setCont
  • Android Chromium WebView 崩溃

    我有一个在 Android 5 1 1 设备上运行的应用程序 该应用程序有一个 webview 48 0 2564 106 该视图保持 24 7 有时应用程序会崩溃 因为 chromium webview 有未捕获的异常 最新版本的webv
  • 如何将元素推入数组的某个值之后[重复]

    这个问题在这里已经有答案了 所以我们都知道array push工作原理如下 所以结果是 Array 0 gt red 1 gt green 2 gt blue 3 gt yellow 但现在我需要知道如何附加blue and yellow在
  • 涉及伪类first-child和dropcap的CSS选择器

    我需要格式化类似于下面的 HTML 基本上一个报价是optional 我需要将正文段落的第一个字母大写
  • 将应用程序背景设置为与主屏幕壁纸相同

    我想将应用程序的背景设置为与主屏幕壁纸相同 如何获取activity xml中的主屏幕壁纸 我可以这样做吗 Use final WallpaperManager wallpaperManager WallpaperManager getIn
  • 如何在scala中使用java代理

    我有一个 Iface 接口 它有两个用 java 编写的方法 该接口是 Zzz 类的内部接口 我已经用 scala 编写了调用处理程序 然后我尝试在 scala 中创建一个新的代理实例 如下所示 val handler new ProxyI
  • 元素不会出现在 IE7 中,直到我通过开发人员工具栏编辑它

    这个让我难住了 我的页面上有一个具有绝对位置的元素 位于具有相对位置的容器内 在除 IE7 之外的所有浏览器中 它都显示在正确的位置 没有任何问题 在 IE7 中 该元素不会出现 直到我添加或编辑其任何 CSS 属性在开发者工具栏的 属性
  • 在 javascript 中解析 JSON 以获得多个 JSON 对象 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 应该是一个很常见的答案 但我还没有找到 使用客户端 JavaScript 我的客户端收到一些 JSON 字符串 response id1 v
  • 重新排列数组索引 Eloquent Laravel

    从 laravel eloquent 数组中删除元素后出现错误 物业有房间 foreach property gt rooms as key gt room if room gt type 1 and type 1 and room gt
  • Jquery 验证 - 在急切验证期间显示验证摘要?

    是否可以使用 jquery 验证来显示验证摘要 我正在使用 MVC 3 如果重要的话 并且当每个元素失去焦点时我的表单会进行验证 myform validate onfocusout function element element val