【问题标题】:Check all errors raised by Parsleyjs检查 Parsleyjs 引发的所有错误
【发布时间】:2014-03-12 15:12:28
【问题描述】:

我有一个我正在使用 Parsley.js 验证的表单,该表单以前可以使用,但现在不允许提交表单,尽管没有解释表单提交失败的原因(尽管我已经验证它是 Parsley阻止提交)。两个问题:

(1) 我怀疑 Parsley 验证在隐藏的字段上失败,或者由于某种原因不显示其错误消息。有没有办法在控制台中记录所有 Parsley 验证失败?

(2) 有没有办法禁用 Parsley 阻止表单提交,同时仍然保持 Parsley 提供“实时”按键验证反馈等功能?


代码:

这是一个带有欧芹验证信息的示例输入 div,因为它正在呈现:

<input class="parsley-validated parsley-error" data-parsley-required="true" data-parsley-trigger="keyup change keypress" id="order_delivery_address" name="order[delivery_address]" placeholder="Address" type="text" value="" data-parsley-id="8942">

我这样初始化 Parsley:

$('#new_order').parsley()

【问题讨论】:

    标签: javascript forms validation parsley.js


    【解决方案1】:

    1) Parsley 字段结果存储在validationResult 中,用于每个字段。字段存储在fields

    var failingFields = [],
      parsleyForm = $('#new_order').parsley();
    
    for (var i = 0; i < parsleyForm.fields.length; i++)
      if (true !== parsleyForm.fields[i].validationResult && parsleyForm.fields[i].validationResult.length)
        failingFields.push(parsleyForm.fields[i].$element);
    

    2) 要防止 Parsley 阻止表单提交,您必须这样做 $('#new_order).off('submit.Parsley')

    【讨论】:

      【解决方案2】:

      代码会很有帮助,但要详细说明第 2 部分,您可以这样做..

      $('form').off('submit.parsleyForm');
      

      ...在$('form').parsley(...) 初始化调用之后。

      请确保在您想要验证表单时致电 $('form').parsley('validate')

      【讨论】:

      • $('form').off('submit.parsleyForm');不幸的是,这对我没有用。我已经用代码编辑了我的问题。
      • 你用的是什么版本的欧芹?
      • 您还需要使用与初始化欧芹相同的元素。在您的情况下,它将是 $('#new_order').off('submit.parsleyForm')
      • 确保在$('#new_order').parsley()之后完成所有工作
      • 对,我用正确的元素进行了尝试,刚刚在我的评论中粘贴了您的示例。我正在使用 v 2.0.0。
      猜你喜欢
      • 2020-11-16
      • 2018-09-26
      • 2013-12-15
      • 2016-02-15
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多