【问题标题】:Validate form depending on operations根据操作验证表单
【发布时间】:2014-02-06 12:10:45
【问题描述】:

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

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

附:下面是代码sn-p。

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;
    }
}

【问题讨论】:

    标签: javascript jquery validation error-handling


    【解决方案1】:

    要完全重置表单,您需要这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多