当单个字段发出无穷递归的成功事件时,我无法在Parsley中触发验证

本432rew

我在表单中有许多不同的部分,并且每个部分的输入必须等于要验证的表单的第一个输入(在其自己的部分中)。

验证工作正常,唯一的问题是,当用户尝试验证某节中的图形不正确时,UI会在该节的其余部分显示错误。在这种情况下,该部分的每个输入上都会显示错误。这很棒。但是,当用户更改其中一个字段中的数字并且总数现在正确时,欧芹仅清除该特定字段中的错误。

这是可以正常工作的代码,但不能清除错误:

window.ParsleyValidator
    .addValidator('sumTotal', function (value, group) {
        // get total enrollment number
        var totalInput = $('#enrollment-group').find('[data-parsley-sum-total="all"]')
        var totalEnrollment = parseInt(totalInput.val())
        // sum up input values for the section
        var sectionSum = 0;
        $('#enrollment-group').find('[data-parsley-sum-total="' + group + '"]').each(function(){
            if ($(this).val()) sectionSum += parseInt($(this).val()); 
        })
        // if no inputs, don't consider the section
        if (sectionSum === 0)  return true
        return totalEnrollment === sectionSum;
    }, 32)
    .addMessage('en', 'sumTotal', 'The total sum for all %s fields must equal the total enrollment above: ' + $('#enrollment-group').find('[data-parsley-sum-total="all"]').val());
// exclude the 'total enrollment' input from the sum validation
$('form').parsley({ excluded: '[data-parsley-sum-total="all"]' });

这是我尝试清除错误但最终以无限递归结束的代码示例:

$('form').parsley().subscribe('parsley:field:success', function(input){

    $.each($('[data-parsley-sum-total]'), function(i, value){
        if ($(value).hasClass('parsley-error')){
            $(value).parsley().validate()
        }
    })
});

因此,该部分有效后如何清除该部分输入中的所有错误?

这是在django管理模板中,因此我必须在parsley.js加载后添加我的自定义验证器。在此先感谢您的帮助。

本432rew

好吧,经过一番摆弄之后,我发现了它,这里是给有类似问题的任何人的:

window.ParsleyValidator
    .addValidator('sumTotal', function (value, group) {
        // get total enrollment number
        var totalInput = $('#enrollment-group').find('[data-parsley-sum-total="all"]')
        var totalEnrollment = parseInt(totalInput.val())
        // sum up input values for the section
        var sectionSum = 0;
        $('#enrollment-group').find('[data-parsley-sum-total="' + group + '"]').each(function(){
            if ($(this).val()) sectionSum += parseInt($(this).val()); 
        })
        // if no inputs, don't consider the section
        if (sectionSum === 0)  return true
        return totalEnrollment === sectionSum;
    }, 32)
    .addMessage('en', 'sumTotal', 'The total sum for all %s fields must equal the total enrollment above: ' + $('#enrollment-group').find('[data-parsley-sum-total="all"]').val());
// exclude the 'total enrollment' input from the sum validation
$('form').parsley({ excluded: '[data-parsley-sum-total="all"]' });
// clear other errors in section if one field emits success event
$('form').parsley().subscribe('parsley:field:success', function(input){
    $.each($('[data-parsley-sum-total]'), function(i, value){
        if ($(value).attr('data-parsley-sum-total') == input.options.sumTotal){
            window.ParsleyUI.removeError($(value).parsley(), 'sumTotal')
            $(value).removeClass('parsley-error')
            $(value).addClass('parsley-success')
        }
    })
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我有5个使用JavaScript的字段时,如何验证表单中的单个字段?

来自分类Dev

Parsley JS 强制字段无法验证状态

来自分类Dev

如何在Blazor EditForm中验证单个字段?

来自分类Dev

如何使用parsley.js订阅单个字段?

来自分类Dev

验证Parsley.js中的链接字段

来自分类Dev

验证Parsley.js中的链接字段

来自分类Dev

我无法在镜像博客时让wget成功递归

来自分类Dev

如何从触发在整个表单(vanilla JS)中注册的 onchange 事件中排除单个字段?

来自分类Dev

消除对Mousewheel事件中触发的事件的递归

来自分类Dev

我如何在Flutter中验证单个表单字段

来自分类Dev

在C中递归删除单个链接列表中具有多个字段的节点

来自分类Dev

在JavaScript中成功验证后,我无法显示任何消息

来自分类Dev

如何使用Parsley.js成功更改每个字段的CSS属性

来自分类Dev

jQuery验证程序-单个字段上的条件验证

来自分类Dev

当其中的View触发Android中的事件时,无法滚动ScrollView

来自分类Dev

当我在 chrome 中拖动时触发了单击事件

来自分类Dev

检索单个字段值时的FirstOrDefault()

来自分类Dev

检索单个字段值时的FirstOrDefault()

来自分类Dev

当我触发事件时,它会触发几次,而不是在jQuery中触发一次

来自分类Dev

Aurelia:跳出时触发验证(模糊事件)

来自分类Dev

当我从输入字段中删除光标时发生的事件

来自分类Dev

DRF与模型中的单个字段相关

来自分类Dev

从PHP中的JSON打印单个字段

来自分类Dev

在表的单个字段中显示数据

来自分类Dev

在多个字段中搜索单个值

来自分类Dev

在 symfony 中检查选民的单个字段

来自分类Dev

选择记录中的单个字段

来自分类Dev

根据Spring MVC中服务的结果验证单个字段

来自分类Dev

如何使用Hibernate Validator验证单个字段?

Related 相关文章

  1. 1

    当我有5个使用JavaScript的字段时,如何验证表单中的单个字段?

  2. 2

    Parsley JS 强制字段无法验证状态

  3. 3

    如何在Blazor EditForm中验证单个字段?

  4. 4

    如何使用parsley.js订阅单个字段?

  5. 5

    验证Parsley.js中的链接字段

  6. 6

    验证Parsley.js中的链接字段

  7. 7

    我无法在镜像博客时让wget成功递归

  8. 8

    如何从触发在整个表单(vanilla JS)中注册的 onchange 事件中排除单个字段?

  9. 9

    消除对Mousewheel事件中触发的事件的递归

  10. 10

    我如何在Flutter中验证单个表单字段

  11. 11

    在C中递归删除单个链接列表中具有多个字段的节点

  12. 12

    在JavaScript中成功验证后,我无法显示任何消息

  13. 13

    如何使用Parsley.js成功更改每个字段的CSS属性

  14. 14

    jQuery验证程序-单个字段上的条件验证

  15. 15

    当其中的View触发Android中的事件时,无法滚动ScrollView

  16. 16

    当我在 chrome 中拖动时触发了单击事件

  17. 17

    检索单个字段值时的FirstOrDefault()

  18. 18

    检索单个字段值时的FirstOrDefault()

  19. 19

    当我触发事件时,它会触发几次,而不是在jQuery中触发一次

  20. 20

    Aurelia:跳出时触发验证(模糊事件)

  21. 21

    当我从输入字段中删除光标时发生的事件

  22. 22

    DRF与模型中的单个字段相关

  23. 23

    从PHP中的JSON打印单个字段

  24. 24

    在表的单个字段中显示数据

  25. 25

    在多个字段中搜索单个值

  26. 26

    在 symfony 中检查选民的单个字段

  27. 27

    选择记录中的单个字段

  28. 28

    根据Spring MVC中服务的结果验证单个字段

  29. 29

    如何使用Hibernate Validator验证单个字段?

热门标签

归档