【发布时间】: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 文件中定义的函数(例如 onError、onSuccess)
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