清除parsley js中的从属字段错误

迈克尔·罗贝拉德

我正在编写一个自定义的欧芹验证器,用于检查一组字段的唯一性。一切都很好,除了当我修复一个唯一的错误时,我没有更改的字段仍然是错误的。当然,这是因为manageFailingFieldTrigger仅为已更改的字段添加了onchange。我认为,如果我能弄清楚如何告诉manageFailingFieldTrigger来验证组,而不是要解决问题的字段onchange,则我不知道该怎么做。

window.Parsley.addValidator('unique', function (value, requirement) {
        console.debug("Validating: " + value + "\nrequirement: " + requirement);
        console.debug($(requirement + '[value="' + value + '"]'));
        var matches = 0;
        $(requirement).each(function(i, val) {
          if ($(this).val() == value) {
            matches++;
          }
        });
        if(matches > 1) return false;
        return true;
    })
        .addMessage('en', 'unique', 'This value must be unique');

HTML(删除了许多无关的东西):

<form id="upload_form" method="POST" action="/school/student/upload_finish" data-parsley-validate>
            <input type="text" name="data-0-1" class="column-1" value="[email protected]" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-1-1" class="column-1" value="[email protected]" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-2-1" class="column-1" value="[email protected]" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-3-1" class="column-1" value="[email protected]" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-4-1" class="column-1" value="[email protected]" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-5-1" class="column-1" value="[email protected]" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-6-1" class="column-1" value="[email protected]" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
</form>
迈克尔·罗贝拉德

这似乎完成了我想要的:

window.Parsley.addValidator('unique', function (value, requirement) {
    var matches = 0;
    $(requirement).each(function(i, val) {
      if ($(this).val() == value) {
        matches++;
      }
    });
    if(matches > 1) return false;
    return true;
})
    .addMessage('en', 'unique', 'This value must be unique');

window.Parsley.on('field:success', function() {
    // In here, `this` is the parlsey instance of #some-input
    //Ugly hack
    if("unique" in this.constraintsByName)
    {
        for(var field in this.parent.fields)
        {
            var fieldInstance = this.parent.fields[field];
            if(fieldInstance.$element.hasClass(this.constraintsByName["unique"].requirements.substring(1)) && fieldInstance.$element.hasClass('parsley-error'))
            {
                fieldInstance.validate();
            }
        }
    }
});

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Parsley验证不起作用Angular js

来自分类Dev

Django中的从属字段

来自分类Dev

parsley.js中的远程规则消息

来自分类Dev

Parsley JS 2.x-如何验证隐藏字段?

来自分类Dev

清除angularjs表单中的错误

来自分类Dev

parsley.js-禁用maxlength验证

来自分类Dev

验证Parsley.js中的链接字段

来自分类Dev

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

来自分类Dev

通过使用parsley.js每个字段提供多个自定义错误消息支持

来自分类Dev

延迟Parsley.js表单提交

来自分类Dev

如何覆盖Parsley JS焦点行为

来自分类Dev

如何使用Parsley JS验证文件输入?

来自分类Dev

使用parsley.js验证动态创建的字段

来自分类Dev

如何清除Draft-js中的输入字段

来自分类Dev

清除parsley js中的从属字段错误

来自分类Dev

Parsley.js验证文件大小?

来自分类Dev

parsley.js远程验证响应

来自分类Dev

姓氏的Parsley.js模式

来自分类Dev

Parsley JS 2.x-如何验证隐藏字段?

来自分类Dev

parsley.js数据类型错误

来自分类Dev

清除angularjs表单中的错误

来自分类Dev

验证Parsley.js中的链接字段

来自分类Dev

验证错误后清除字段

来自分类Dev

使用Parsley.js时出现字段错误重复

来自分类Dev

如何清除Angular JS中的404错误?

来自分类Dev

如何清除Angular JS中的未定义错误?

来自分类Dev

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

来自分类Dev

Parsley JS - 自定义错误消息 %s 格式

来自分类Dev

澄清 Parsley.js 中的 data-parsley-`constraint`-message