Asp.net mvc 与jquery.validate一起使用时,livequery并不总是处于活动状态

Asp.net mvc 与jquery.validate一起使用时,livequery并不总是处于活动状态,asp.net-mvc,jquery-validate,xval,jquery,Asp.net Mvc,Jquery Validate,Xval,Jquery,我使用jquerylive插件向.field验证错误类添加其他css类,如下所示: $(".field-validation-error").livequery(function () { $(this).addClass('ui-state-error ui-corner-all'); }); 当我使用jquery.validate生成的这个类获得一些跨度时,上面的代码可以工作,但在第二次验证时就不行了 这里是实时链接: 单击“保存”后单击“创建”以获取验证消息,然后再次单击“保

我使用jquerylive插件向.field验证错误类添加其他css类,如下所示:

$(".field-validation-error").livequery(function () { 
    $(this).addClass('ui-state-error ui-corner-all'); 
});
当我使用jquery.validate生成的这个类获得一些跨度时,上面的代码可以工作,但在第二次验证时就不行了

这里是实时链接:
单击“保存”后单击“创建”以获取验证消息,然后再次单击“保存”

是否可以不使用errorClass选项

$(".selector").validate({
   errorClass: "field-validation-error ui-state-error ui-corner-all"
})
或者可能:

$.validator.setDefaults({ 
   errorClass: "field-validation-error ui-state-error ui-corner-all"
});

为什么不将函数挂接到触发validate()的同一事件中

更新

我读了其他的评论,看到您在使用xVal,读了一些关于jQuery.Validate的内容。Validate与许多事件关联,在事件处理程序上注册会很混乱。livequery第一次工作的原因是,如果标签以前不存在,则会生成标签,因此创建事件会使函数运行,每次之后,标签只是隐藏/显示,因此不会再次触发,但jQuery.validate的showLabel函数会重设类

理想的位置是在xVal中,在
xVal.jquery.validate.js
文件中做一个小更改。在
\u EnsureReformisMarkedforValidation
方法中有以下行:

ensureFormIsMarkedForValidation: function(formElement, options) {
        if (!formElement.data("isMarkedForValidation")) {
            formElement.data("isMarkedForValidation", true);
            var validationOptions = {
                errorClass: "field-validation-error",
您只需将errorClass更改为:

errorClass: "field-validation-error ui-state-error ui-corner-all",

这是因为xVal正在进行验证插件的设置

我正在尝试在不修改第三方脚本的情况下执行此操作。我使用的是xVal,它为我做了所有这些。但如果没有其他帮助,这也可能是一个解决方案+1,您可以这样说:
$(“.selector”).validate()在您不想编辑的地方被调用?您正在使用JQuery 1.4.2。那么为什么不使用.live()方法而不是livequery呢?livequery插件已在1中集成到jquery代码中。4@Shree因为我没有事件有没有一个原因,这一切不能用CSS来完成?为什么不能将span.field-validation-error设置为使用ui状态错误的属性?问题根本不在于livequery,而在于错误只生成一次,然后被重置和重用,所以你丢失了livequery添加的新类。@nathan gonzalez有解决方案吗?再看一眼这个问题,它不太容易挂到同一个地方,用一些应该有效的东西更新。