我使用jquerylive插件将其他CSS类添加到.field-validation-error类中:

$(".field-validation-error").livequery(function () { 
    $(this).addClass('ui-state-error ui-corner-all'); 
});

当我通过JQuery生成的此类获得一些跨度。估算上述代码有效,但是在第二个验证下,它没有。

这是实时链接: http://mrgsp.md:8080/awesome/person单击“保存”以获取验证消息后单击创建,然后再次单击保存

有帮助吗?

解决方案

为什么不将您的功能挂接到触发validate()的同一事件中?

更新

我阅读了其他评论,看到您正在使用xval,在jQuery.validate上也有所阅读。 jQuery.Validate与许多活动进行了估算,并在活动处理程序上注册会很混乱。首次使用LiveQuery工作的原因是,如果标签以前不存在,则会生成这些标签,以便创建事件使函数运行,每次在此之后,标签都被隐藏/显示,因此它不会再次被触发,而是jQuery。验证的ShowLabel函数重置类。

理想的位置是在xval中进行一次小小的变化 xVal.jquery.validate.js 文件。在里面 _ensureFormIsMarkedForValidation 方法是行:

ensureFormIsMarkedForValidation: function(formElement, options) {
        if (!formElement.data("isMarkedForValidation")) {
            formElement.data("isMarkedForValidation", true);
            var validationOptions = {
                errorClass: "field-validation-error",

您需要做的就是将错误级别更改为:

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

这是因为XVAL正在执行验证插件的设置。

其他提示

您不仅可以“错误级别”选项?

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

或许:

$.validator.setDefaults({ 
   errorClass: "field-validation-error ui-state-error ui-corner-all"
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top