Javascript 根据操作验证表单

Javascript 根据操作验证表单,javascript,jquery,validation,error-handling,Javascript,Jquery,Validation,Error Handling,我有一个表单,只有很少的输入字段和两个可用的操作Store和Validate。我使用jquery验证插件进行客户端验证 在存储操作的情况下,只有2个字段是必填字段,在验证操作的情况下,只有5个字段是必填字段。首先,当我尝试执行验证时操作验证规则工作正常。在我尝试执行Store操作后,但为了使其正常工作,我需要清除Validate操作中以前的所有错误,并使用Store操作规则再次验证表单。我尝试使用resetForm()清除表单错误,但在我的情况下,它无法正常工作,因为它只清除验证错误消息,但表单

我有一个表单,只有很少的输入字段和两个可用的操作
Store
Validate
。我使用
jquery验证
插件进行客户端验证

存储
操作的情况下,只有2个字段是必填字段,在
验证
操作的情况下,只有5个字段是必填字段。首先,当我尝试执行
验证时
操作验证规则工作正常。在我尝试执行
Store
操作后,但为了使其正常工作,我需要清除
Validate
操作中以前的所有错误,并使用
Store
操作规则再次验证表单。我尝试使用
resetForm()
清除表单错误,但在我的情况下,它无法正常工作,因为它只清除验证错误消息,但表单仍然无效,在更正错误之前,我无法执行任何操作。请分享你的想法如何解决这个问题

下面是附加说明代码片段

var validationOperMandatoryFields = new Array("field1", "field2", "field3", "field4", "field5");
var storeOperMandatoryFields = new Array("field1", "field2");

$(document).ready(function() {
    var validator = $("#form").validate({
        rules: {
            field1: {
                required: {
                    depends: function () {
                        return isMandatoryForOperation('field1')
                    }
                }
            },
            field2: {
                required: {
                    depends: function () {
                        return isMandatoryForOperation('field2')
                    }
                }
            },
            field3: {
                required: {
                    depends: function () {
                        return isMandatoryForOperation('field3')
                    }
                }
            },

            field4: {
                required: {
                    depends: function () {
                        return isMandatoryForOperation('field4')
                    }
                }
            },

            field5: {
                required: {
                    depends: function () {
                        return isMandatoryForOperation('field5')
                    }
                }
            }
        }
    });
});

function isMandatoryForOperation(fieldname) {
    var operationName = $("#tempOper").val();
    switch (operationName) {
        case "Store":
            return $.inArray(fieldname, storeOperMandatoryFields) > -1;
            break;
        case "Validate":
            return $.inArray(fieldname, validationOperMandatoryFields) > -1;
            break;
    }
}

要完全重置表单,您需要执行以下操作:

validator.resetForm();
$("#form").get(0).reset();