javascript - 清除欧芹js中的从属字段错误

标签 javascript jquery 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="student2@ehrtutor.com" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-1-1" class="column-1" value="student3@ehrtutor.com" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-2-1" class="column-1" value="student7@ehrtutor.com" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-3-1" class="column-1" value="student1@ehrtutor.com" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-4-1" class="column-1" value="student4@ehrtutor.com" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-5-1" class="column-1" value="student2@ehrtutor.com" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
            <input type="text" name="data-6-1" class="column-1" value="student3@ehrtutor.com" data-parsley-group="column-1" data-parsley-unique=".column-1"/>
</form>

最佳答案

Parsley(还)不能很好地处理相互依赖的领域。 IMO 处理它的最简单方法是将您的输入包含在 div 中,并将验证添加到该 div (请参阅 this example ) 。验证可以添加/删除重复项的“重复”类。

否则,您可以触发 'input' 事件,或对要更新的其他字段调用 validate()

关于javascript - 清除欧芹js中的从属字段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38058242/

相关文章:

javascript - 更改 parsley-errors-list 在 parsleyjs 中的位置

Javascript - 将整数与整数数组进行比较

javascript - 如何观察整个 session 的游戏统计数据?

javascript - 在我的例子中,foreach 中的 Mongoose promise 失败了

javascript - 从类型 ="button"切换到 asp :LinkButton

javascript - 如何通过类名获取元素值并将它们存储在 jQuery 的数组中?

javascript - Angular 异步调用没有按预期结束 while 循环

javascript - 无法附加 &lt;script&gt; 元素

jquery - 如何动态添加和删除要由 Parsley.js 验证的表单字段?

javascript - 处理欧芹表单事件时,有没有办法确定验证了哪个组