Parsleyjs删除约束并重新评估字段?

时间:2013-09-24 21:00:08

标签: jquery validation parsley.js

我有一个非常大的表单,其中包含可由用户启用和禁用的各个部分。在这些部分中,我有一些带有欧芹数据属性的字段用于验证。我想在禁用该部分时删除这些字段的验证属性,并在启用该部分时将其添加回来。我已尝试使用addConstraint和removeConstraint javascript执行此操作,如下所示:

    function ToggleVehicleInfo(toggleState) {
        if (toggleState) {
            $("#tbVehicleLicenseNumber").parsley('removeConstraint', 'required');
        } else {
            $("#tbVehicleLicenseNumber").parsley('addConstraint', { required: true });
        }
    }

但这似乎只是删除了parsley-error类,而不是错误文本。有时根本不会对场地产生任何影响。请参阅下文 - 顶部是字段已经标记的情况,底部是在我尝试删除所需的约束之后:

enter image description here

所以我的问题是,我做错了什么?另外,有更好的方法来处理这个问题吗?有关如何完成此操作的完整示例?

1 个答案:

答案 0 :(得分:0)

您是否尝试使用侦听器仅处理表单的相关部分,而不是添加和删除约束?

以下是我在验证过程中忽略隐藏字段的一种方法(使用jquery):

    listeners: {
        onFieldValidate: function ( elem, ParsleyField ) {
            // if field is not visible, do not apply Parsley validation!
            if ( !$( elem ).is( ':visible' ) ) {
                return true;
            }
            return false;
        }
    }

您可以设置一些指标来确定您要验证的表单的哪个部分,如果当前字段不在该部分中,则通过返回false跳过它。