jquery验证插件无法使用不引人注目的js引用
我有一个MVC4项目,它使用的是不引人注目的验证,但有一部分我使用的是knockoutjs 我已经安装了knockout来使用jquery验证插件,但是当我调用$(“form”).valid()时,它的行为并没有达到预期 我在表单中呈现了一个表,其中有几行需要验证。验证时应忽略表的第一行,该行用于向列表中添加新对象。我给了第一行中的每个对象一个“firstRow”类 我已经设置了验证程序jquery验证插件无法使用不引人注目的js引用,jquery,validation,knockout.js,unobtrusive,Jquery,Validation,Knockout.js,Unobtrusive,我有一个MVC4项目,它使用的是不引人注目的验证,但有一部分我使用的是knockoutjs 我已经安装了knockout来使用jquery验证插件,但是当我调用$(“form”).valid()时,它的行为并没有达到预期 我在表单中呈现了一个表,其中有几行需要验证。验证时应忽略表的第一行,该行用于向列表中添加新对象。我给了第一行中的每个对象一个“firstRow”类 我已经设置了验证程序 var validator = $("form").validate({ i
var validator = $("form").validate({
ignore: ".firstRow"
});
但是当我打电话的时候
$("form").valid()
我注意到所有无效的元素(包括第一行)都添加了类“InputValidationError”
首先,我希望第一行会被忽略
其次,我不希望应用这个类,因为这样做是不引人注目的验证。我希望类“error”将应用于jquery验证插件之外
当我排除对jquery.validation.unobtrusive.js的引用时,一切都正常,但我不能这样做,因为这是站点其余部分所需要的
我认为这是以某种方式从jquery.validation.Untrusive执行的代码,但我想知道如何阻止它执行
function validationInfo(form) {
var $form = $(form),
result = $form.data(data_validation),
onResetProxy = $.proxy(onReset, form);
if (!result) {
result = {
options: { // options structure passed to jQuery Validate's validate() method
errorClass: "input-validation-error",
errorElement: "span",
errorPlacement: $.proxy(onError, form),
invalidHandler: $.proxy(onErrors, form),
messages: {},
rules: {},
success: $.proxy(onSuccess, form)
},
attachValidation: function () {
$form
.unbind("reset." + data_validation, onResetProxy)
.bind("reset." + data_validation, onResetProxy)
.validate(this.options);
},
validate: function () { // a validation function that is called by unobtrusive Ajax
$form.validate();
return $form.valid();
}
};
$form.data(data_validation, result);
}
return result;
}
最后,我将这些包分开,将jquery.validator文件放在一起,将不引人注目的文件放在另一个包中 然后,在我的布局文件中,我使用Viewbag检查是否应该包括不引人注目的文件包 默认情况下,它将包括then,除非Viewbag.ExcludeUnobtrusive==true,这将在我不希望使用不引人注目的脚本引用的页面中设置 布局文件
@{
var includeUnobtrusive = ViewBag.ExcludeUnObtrusive == null || ViewBag.ExcludeUnObtrusive == false;
}
....
....
@if (includeUnobtrusive)
{
@Scripts.Render("~/bundles/jqueryunobtrusive")
}
你研究过了吗?我还没有,因为knockoutjs页面上的示例使用的是jQueryValidator。