【问题标题】:Parsley.js skip validation on submit?Parsley.js 在提交时跳过验证?
【发布时间】:2014-04-20 19:05:47
【问题描述】:

当我尝试通过 input[type=submit] 或调用 form.submit() 提交表单时,Parsley 会验证表单并在无效时取消提交。有什么办法可以跳过验证,因为我在表单的各个部分手动调用验证?

具体来说,我想要实现的是提交表单的部分版本,因此我验证了一个组,并且只有该部分被发送到服务器(即使表单的其余部分仍然无效)。

【问题讨论】:

    标签: javascript parsley.js


    【解决方案1】:

    如果您想取消 Parsley 提交事件的默认验证,您必须删除表单上的 submit.Parsley 绑定事件。

    $('#yourform').off('submit.Parsley'); 应该可以解决您的问题。

    最好的

    编辑:对于 Parsley2,由于事件名称已更改,因此应为 $('#yourform').off('form:validate');

    【讨论】:

    • 如果您有时间将其添加到 Parsley 文档中,那会很方便。我有一个场景,我们在表单上有一个“保存篮子”按钮,直到我发现这个我才能找到一种方法来禁用验证而不完全破坏 Parsley 实例,以使人们能够提交表单以保存大车。但是这个库很棒,谢谢!
    • 也许应该在那里使用特定于提交的链接,它不再适用于任何有用的地方。
    • @aptwebapps 你是对的。我根据文档更新了答案,但未经测试..
    • @guillaumepotier 不,我的意思是 github 链接只是转到 master 并且看起来行号不再指向您想要的位置。
    • 您的$('#yourform').off('form:validate'); 不起作用。
    【解决方案2】:

    如果你想跳过单个元素,只需使用:

    data-parsley-excluded
    

    Parsley 不会验证的表单字段。例如,如果您 要将禁用和隐藏字段添加到现有列表,请使用: data-parsley-excluded="input[type=button], input[type=submit], 输入[type=reset], input[type=hidden], [disabled], :hidden"

    但如果您想验证特定的分组,请使用:

    data-parsley-group
    

    将组分配给特定组验证的字段。例如: 数据欧芹组=“注册”。这样,您只能验证一个 表单的一部分,而不是所有字段。

    来源:

    http://parsleyjs.org/doc/index.html#psly-usage-form

    【讨论】:

    • 是的,我正在使用你提到的两个东西。但不管怎样,Parsley 在尝试提交时仍会重新验证整个表单。这就是我想跳过的内容,因为我之前已经为每个组调用了验证。
    • 重新验证是什么意思?
    • 再次运行验证,表单提交被取消。
    • @DanielBang 可以请你摆弄一下,或者发送完整的代码,一旦我清楚地解决了问题,我会很乐意提供帮助。
    • 谢谢。我已直接查看代码,目前无法跳过提交验证。
    【解决方案3】:

    在 JS 中运行提交时,您可以这样做:

    $('#yourform').parsley().destroy();

    所以在代码中使用 jQuery,它可能看起来像这样:

    var $myForm = $('#yourform');
    
    $("#submit-button").on('click',function(e){
      e.preventDefault();
      
      $myForm.parsley().destroy();
      $myForm.submit();
    });
    

    【讨论】:

      猜你喜欢
      • 2015-12-11
      • 1970-01-01
      • 2014-01-24
      • 2014-11-15
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      相关资源
      最近更新 更多