【问题标题】:how to disable validation for a field如何禁用字段验证
【发布时间】:2014-05-15 15:36:15
【问题描述】:

在 parsley2 中,有没有办法禁用字段验证?即我有一个<select>-control,它将始终返回一个值并需要进一步验证。然而,Parsley 不需要的错误列表破坏了我的格式 - 所以我想完全禁用该字段的验证。我知道我可以分配一个不同的错误容器,但感觉“不干净”...

我尝试将data-parsley-exclude="select" 添加到表单中,但没有效果。 (反正这是一个疯狂的猜测......)

【问题讨论】:

    标签: parsley.js


    【解决方案1】:

    我发现此方法存在一些问题,我仍在尝试解决,因此您的实际情况可能会因我即将向您展示的内容而异。

    您可以停用 parsley 验证,删除要为其禁用验证的元素的 required 属性,然后重新激活 Parsley。

    首先,假设您将 Parsley 验证绑定到您的表单,如下所示:

    $('#my-form').parsley({
      //options
    });
    

    元素#my-reg-form 是你的<form>,只是要清楚一点。

    您的 Parsley 验证代码“刷新”如下所示:

    // Deactivate Parsley validation
    $('#my-form').parsley().destroy();
    
    // Make your field not required, thus disabling validation for it
    $('#disabled-select').removeAttr('required');
    
    // Reactivate Parsley validation
    $('#my-form').parsley({
       //options
    });
    

    如果您想将该字段再次设为必填字段,也可以反过来执行此操作。

    // Deactivate Parsley validation
    $('#my-form').parsley().destroy();
    
    // Make your field required by adding the required attribute back to the element
    $('#disabled-select').attr('required', '');
    
    // Reactivate Parsley validation
    $('#my-form').parsley({
       //options
    });
    

    【讨论】:

      【解决方案2】:

      我知道这个旧的,但我实际上仍在使用 Parsley v1,而且我通常使用

      $('#form').parsley('validate')

      ...以自定义方式验证表单的命令。

      我需要排除一个具有自己的自定义验证的字段,并且在调用上述命令之前我使用了 Parsley 的 removeItem 调用。这会从验证周期中删除该字段:

      $('#form').parsley('removeItem', '#someInput');

      【讨论】:

        【解决方案3】:

        对于 Parsley V2 - 将 data-parsley-excluded=true 添加到您的元素。

        参考: https://parsleyjs.org/doc/

        【讨论】:

        • 对。正如我发现自己并在回复纪尧姆接受的答案中提到的那样:)
        【解决方案4】:

        你可以:

        • 排除您传递给表单的 Parsley 选项中的选择
        • 停用此特定选择的 UI(请参阅文档的 UI 部分)

        您可以考虑一种更“干净”的排除方法并将其提交到 PR。

        最好的

        【讨论】:

        • 感谢 Guillaume,我尝试使用 data-parsley-exclude="select" 排除它,但没有奏效。我如何使用该选项来禁用特定字段的验证? (是的,我阅读了文档 - 但要么不清楚,要么我错过了重点......)
        • 哇 - 几年后我回到自己的问题并找出我错过了什么:data-parsley-excluded=true 似乎完成了这项工作:)
        • @MBaas 哇,多年后你还在用 Parsley ;)
        • 是的,没有什么比这更棒的了 ;-)。我喜欢我如何通过jndata-attributes 来驱动整个验证!尽管我非常想念的一件事是验证 singke 字段的功能。我终于写了一个cover-fn来做到这一点......
        【解决方案5】:

        data-parsley-required 设置为 false,这也有效

        【讨论】:

        • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
        • 谢谢 Basit,不错的尝试 - 但我已经发现了这一点,并在接受的答案下方的评论中提到了它。
        猜你喜欢
        • 1970-01-01
        • 2012-07-05
        • 1970-01-01
        • 2018-02-10
        • 2012-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多