jQueryvalidation错误类没有从字段中删除

我有一个jQueryvalidation的自定义方法(基于Sparky对相关问题的回答 ),它检查以确保一组四个文本字段中的一个具有值。 这工作正常,除了我刚刚注意到即使错误消息在其中一个字段中输入值时消失,错误类仍保留在原位,因此文本字段以错误颜色突出显示(本例中为红色背景) )。

关于如何解决这个问题的任何想法?

谢谢。

这是问题的一个方面 。

这是我的脚本:

$(document).ready(function () { $.validator.addMethod("textboxrule", function (value, element) { return ($('#my_text_field_1').val() != '' || $('#my_text_field_2').val() != '' || $('#my_text_field_3').val() != '' || $('#my_text_field_4').val() != '') }, "Select at least one of these four"); $('.my_form').validate({ // initialize the plugin errorLabelContainer: ".form_errors", wrapper: "li", groups: { somename: "my_text_field_1 my_text_field_2 my_text_field_3 my_text_field_4" }, rules: { 'my_text_field_1': { textboxrule: true }, 'my_text_field_2': { textboxrule: true }, 'my_text_field_3': { textboxrule: true }, 'my_text_field_4': { textboxrule: true } }, submitHandler: function (form) { // for demo alert('valid form submitted'); // for demo return false; // for demo } }); }); 

这是我的HTML:

 

    这是我的CSS:

     input.error { background: red; } 

    如果它通过validation,您将需要扩展validation方法以删除错误类。 试试这个:

     $.validator.addMethod("textboxrule", function (value, element) { var returnValue = ($('#my_text_field_1').val() != '' || $('#my_text_field_2').val() != '' || $('#my_text_field_3').val() != '' || $('#my_text_field_4').val() != ''); if (returnValue) { $("#my_text_field_1, #my_text_field_2, #my_text_field_3, #my_text_field_4").removeClass("error"); } return returnValue; }, "Select at least one of these four"); 

    小提琴: http : //jsfiddle.net/u4WM4/3/