2

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

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

但这似乎只是删除了 parsley-error 类,而不是错误文本。有时它对球场根本没有任何影响。见下文 - 顶部是该字段已通过标签,底部是在我尝试删除所需的约束之后:

在此处输入图像描述

所以我的问题是,我做错了什么?另外,有没有更好的方法来处理这个问题?有什么完整的例子说明这是如何完成的?

4

1 回答 1

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 来跳过它。

于 2014-01-09T07:12:36.723 回答