jQuery在重新检查时验证自定义成功消息重复

时间:2009-12-28 07:40:21

标签: jquery jquery-validate

所以我有这个jQuery Validation插件,它有一个自定义成功消息。表单会自动验证,因为它附加到正文。当我希望检查变量以查看表单是否有效时,问题就来了。这会重新验证它,最终会添加一个额外的成功消息(在我的情况下是图像),这是不希望的。我希望成功消息只出现一次,无论多次验证它。这是我的代码:

  $("#makeaComment").validate({
   errorContainer: ".error",
   errorPlacement: function(error, element) {
    error.appendTo( element.next() );
   },
   success: function(label) {
    label.removeClass("error").addClass("check");
   }
  });

  $("#loginAction").click(function() {
   if ($("#makeaComment").valid()) {
    commentLogin();
   }
   else {
    $('#loginAction').attr('value','Fix Errors and Continue');
   }
  });

谢谢!

2 个答案:

答案 0 :(得分:0)

使用成功功能只需确保图像已经存在或清除其中的所有内容并添加图像。我会和前者一起去。

查看脚本似乎可能会为错误制作许多元素。因此,不要删除类错误并添加已检查的尝试,只需将checked作为新元素添加一次。但是在显示错误时一定要删除该类。

答案 1 :(得分:0)

我终于想通了如何解决这个问题!当您从有效元素中删除“error”类时,jquery插件代码会跳过代码块,它会重新使用该元素,而是添加另一个元素。因此,最简单的方法是不删除错误类,而是覆盖有效类中的CSS。

例如:

label.removeClass("error").addClass("check");变为label.addClass("check");

你的CSS可能会像这样修改:

label.error {
    color: red; 
}
label.valid {
    color: green !important; // !important added 
}