【问题标题】:Parsley: Custom Validator ScopeParsley:自定义验证器范围
【发布时间】:2015-08-11 06:33:18
【问题描述】:

有没有办法只将自定义 Parsley 验证器附加到一个表单实例?我发现的唯一东西是ParsleyValidator.addValidator(),但这使得它们在全球范围内可用(这反过来又使得通过ParsleyValidator.removeValidator() 删除它们在涉及多个表单时更加棘手)。一旦不再使用它们,我就需要将它们删除,以避免内存泄漏(应用程序 24/7 全天候运行,因此不能选择重新加载页面)。显然没有ParsleyForm.addValidator() 这样的东西。我有哪些选择?

【问题讨论】:

    标签: javascript parsley.js


    【解决方案1】:

    目前没有这种方式,未来也没有这种方式的计划,除非有人说服我们有必要。

    因为它不应该被需要。您必须将 validatorrequirements 本身(边界或其他参数)区分开来,它是决定一个值是否可接受的代码,即使用的算法应该通过输入的参数或选项来指定。

    验证器是全局注册的,但要求是输入本地的。

    Parsley在数据属性和javascript之间有对应关系,所以你可能只需要使用javascript API。例如,您可以简单地添加需求

    $('.my-input').parsley().options.excludevalues = ['not this', 'nor this']
    

    我基本上已经重写了验证器的代码(参见promise 分支),它引入了一个新的 API。除此之外,很容易定义一个带有更复杂参数的自定义验证器,并且字段实例在验证时也作为参数传递。

    如果您确实有需要“本地”自定义验证器的案例,请提供有关您案例的更多详细信息...

    【讨论】:

    • 除了将需求序列化为某些数据属性或直接在验证器函数中引用它们之外,还有其他方法可以将需求传递给验证器函数吗?示例用例:名称在给定集合中必须是唯一的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多