【问题标题】:How to turn on/off a field from parsley.js form validation如何从 parsley.js 表单验证中打开/关闭字段
【发布时间】:2017-02-23 10:43:38
【问题描述】:

当验证表单 #foo 中的电子邮件字段 [name=bar] 时,我想根据复选框打开和关闭该字段的验证。

阅读文档、github 问题和 stackoverflow 答案后,我认为设置 data-parsley-required="false" 和/或 data-parsley-validate="false" 就足够了。

但事实证明,所有其他约束,如电子邮件、最小长度、最大长度仍然有效,输入字段仍然验证错误条件。我希望它验证是否成功。

<form id="foo">
    <input name="bar"
           maxlength="40"
           value=""
           class="form-control"
           data-parsley-validate="false"
           data-parsley-required="false"
           type="email"
           data-parsley-minlength="5"
           data-parsley-trigger="input keyup change"
           data-parsley-error-message="something is wrong">
</form>

https://jsfiddle.net/88obg0sj/9/

那么如何在方式中关闭字段验证,可以再次重新激活?

【问题讨论】:

  • 您在示例中添加了复选框。当复选框未选中时,您调用 .parsley() 来获取现有的 ParsleyField 实例并调用 .destroy() 来销毁它。但是当检查时你只做 .parsley(),这对我不起作用,因为我最初调用 $('form#foo').parsley({lotsOfOptions}) 和事件订阅。我想,这些选项都被遗忘了。所以我宁愿只做:如果没有检查,验证为真。

标签: javascript forms validation parsley.js


【解决方案1】:

您应该调整excluded 选项,例如将", [data-parsley-validate="false"]" 添加到它。

【讨论】:

  • 这个想法听起来不错,但一开始我什至无法排除它!也许它只在表单提交中被排除,而不是在单个字段验证中? jsfiddle.net/Lwdppsvm/2
  • 我想不出一个可行的解决方案。很难让一个字段只是通过/验证为成功或排除。无法想象,这是我的一个奇怪的用例。
  • 我是对的,排除对输入/更改/keyup触发的单个字段验证没有影响,但仅在表单提交时,所有字段都经过验证:jsfiddle.net/Lwdppsvm/5
【解决方案2】:

您可以按照这种方式进行操作:-

//destroy parsley
$('form').parsley().destroy();

//set required attribute on input to false
$('input').attr('data-parsley-required', 'false');

//reinitialize parsley
$('form').parsley();

【讨论】:

    猜你喜欢
    • 2017-03-17
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多