【问题标题】:Jquery validation settings (need same behavior)Jquery 验证设置(需要相同的行为)
【发布时间】:2014-09-23 16:38:52
【问题描述】:

我正在使用 jquery 验证和引导程序。在我只有一个表单并且我不必在表单上初始化验证器的观点中。我在输入下有输入和验证消息范围。造型很棒。红色消息等。

但是,当我在视图中有 2 个表单时,我需要自己创建一个验证器对象。但是,当我创建它并显示验证消息时,它们的颜色/样式不同。

如何使用相同的设置初始化验证器?

在 jquery.validate.unobtrusive 中我发现了以下内容

options: {  // options structure passed to jQuery Validate's validate() method
                errorClass: defaultOptions.errorClass || "input-validation-error",
                errorElement: defaultOptions.errorElement || "span",
                errorPlacement: function () {
                    onError.apply(form, arguments);
                    execInContext("errorPlacement", arguments);
                },
                invalidHandler: function () {
                    onErrors.apply(form, arguments);
                    execInContext("invalidHandler", arguments);
                },
                messages: {},
                rules: {},
                success: function () {
                    onSuccess.apply(form, arguments);
                    execInContext("success", arguments);
                }
            },

所以我假设我需要这些设置。但是我如何调用该 JavaScript 文件中定义的函数(例如 onErroronSuccess

1 文本框:我不必调用 validate() 或任何东西

 @Html.TextBox("locationDate", "", new { @class = "dateInputMMYY form-control", @placeholder = "Move Date" })
 @Html.ValidationMessage("locationDate")

2 TextBox:我在表单上调用 .validate():

@Html.TextBox("end", "", new { @class = "dateInput form-control search", @placeholder = "End Date" })
@Html.ValidationMessage("end")

【问题讨论】:

  • 你真的需要清理你的 OP。 RENDERED HTML 输出在哪里?显示足够的代码来创建问题的完整示例。否则,我们不知道您想要什么。
  • Quote: “但是,当我在视图中有 2 个表单时,我需要自己创建一个验证器对象。但是,当我创建它并显示验证消息时,它们不具有相同的颜色/样式。” 提示:jQuery 验证插件 设置任何样式。我们需要查看两种表单的渲染 HTML,以了解它们为何获得不同的 CSS。
  • 它添加了将改变样式的类:例如输入元素上的“输入验证错误”类使其变为红色
  • 是的,但它切换类。红色样式不是该插件的一部分,因为该插件不包含 CSS。此外,这不是您刚刚发布的呈现 HTML。 .validate() 方法必须始终在某个地方调用,因为那是插件的初始化。在您的情况下,您的框架可能已经为您执行此操作。但是,根据您的回答,您似乎已经想通了。

标签: javascript jquery asp.net-mvc jquery-validate unobtrusive-validation


【解决方案1】:

经过长期研究并得到本文的帮助

http://nadeemkhedr.wordpress.com/2012/08/27/how-the-unobtrusive-jquery-validate-plugin-works-internally-in-asp-net-mvc/

我发现 unobtrusive 不会验证表单,因为输入元素缺少 data-val="true" 属性。

将该属性添加到输入会选择输入以进行不显眼的验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-16
    • 1970-01-01
    相关资源
    最近更新 更多