使用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"); }); } });
但是, highlight
和unhightlight
选项专门用于此:
$("#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下添加代码就足够了。