在欧芹无效后将字段更改回有效

Change fields back to valid after invalidated by parsley

我有以下自定义验证器。预期目的是 根据传递的字段值验证字段 作为 'requirement'.

'requirement' 字段在 FieldToBeValidated 更改时更新。 为了防止 FieldToBeValidated 不断失效, keyup 已关闭。

一旦 'requirement' 字段被更改,FieldToBeValidated 就不会 验证直到表单被提交。因此,该字段保持红色,并带有适用欧芹的警告框。

如何在 'requirement' 字段更新为非空或“----”后将 'FieldToBeValidated' 更改回有效状态(删除红色背景)?

 name: 'customvalidatorname',
 fn: function(value, requirement) {
   var nodeList = document.getElementsByName(requirement);

   var nodeArray = [].slice.call(nodeList);
   $('#FieldToBeValidated').off('keyup');
   if(!nodeArray[0].value || nodeArray[0].value === '----'){              
        return false;
   }
   return true;
},

您可以使用两种方法从特定字段远程验证。检查 official documentation(参见方法部分)。

要么在该特定字段中使用 reset()

$(document).ready(function() {
    $("form").parsley();
    
    $("#reset-validation").on('click', function() {
        $("input[name=field1]").parsley().reset();
        
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.0.7/parsley.min.js"></script>

<form>
    <input type="text" name="field1" required />
    <input type="submit" />
    
    <button id="reset-validation" type="button">Reset validation</button>
</form>

或者您可以使用destroy()方法:

$(document).ready(function() {
    $("form").parsley();
    
    $("#reset-validation").on('click', function() {        
        $("input[name=field1]").parsley().destroy();
        
        $("input[name=field1]").parsley();
        
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.0.7/parsley.min.js"></script>

<form>
  <input type="text" name="field1" required />
  <input type="submit" />

  <button id="reset-validation" type="button">Reset validation</button>
</form>