jquery - Parsleyjs 消除约束并重新评估字段?

标签 jquery validation parsley.js

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

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

但这似乎只是删除了欧芹错误类,但没有删除错误文本。有时它对场上根本没有任何影响。请参见下文 - 顶部是当字段被选项卡切换时,底部是在我尝试删除所需的约束之后:

enter image description here

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

最佳答案

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

这是我在验证期间用来忽略隐藏字段的一个(使用 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 来跳过它。

关于jquery - Parsleyjs 消除约束并重新评估字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18991942/

相关文章:

css - 如何阻止 Chrome 使我网站的输入框变黄?

php - email@domain 是有效的电子邮件地址吗

jquery - 欧芹 - 在表单顶部显示所有错误

javascript - 当存在 Parsley 错误 div 时,带有国际电话输入的标志向下移动

javascript - 页面加载时停止触发 JavaScript

jquery - 显示和隐藏选项卡

java - hibernate validator : Must I use Maven?

javascript - 哪些 Parsely 配置选项为错误/成功设置 CSS 类?

jquery - 使用 jQuery 和 AJAX 进行表单验证未正确设置变量

java - ChartJS "Unable to get property ' getTime' 未定义或空引用”