使用jQuery Validate的invalidHandler事件

我需要在validation时添加一个包含在select元素周围的div的类。

$("#Form").validate({ invalidHandler: function (form, validator) { $("[id$='_DropDownList']").each(function () { // How do I figure out if $(this) is valid or invalid? // Add the class below if invalid. $(this).parent().addClass("error"); }); } }); 

您可以使用.valid()方法,如下所示:

 $("#Form").validate({ invalidHandler: function (form, validator) { $("[id$='_DropDownList']").each(function () { if(!$(this).valid()) $(this).parent().addClass("error"); }); } }); 

但是, highlightunhightlight选项专门用于此:

 $("#Form").validate({ highlight: function(element, errorClass, validClass) { $(element).parent().removeClass(validClass).addClass(errorClass); }, unhighlight: function(element, errorClass, validClass) { $(element).parent().removeClass(errorClass).addClass(validClass); } }); 

看起来这段代码是正确的:

 $(this).parent().addClass("error"); 

也许你的问题在于它周围的代码…尝试将你的addClass行移到它所在的函数之外,看它是否在那里工作。

invalidHandler仅在表单提交且无效时调用。 我相信仅在该function下添加代码就足够了。