2015-06-04 23 views
2

我有以下自定义验证程序。预期用途是 ,以根据“要求”中通过 的字段的值来验证该字段。欧芹无效后将字段更改为有效

'需求'字段更新FieldToBeValidated的变化。 为了防止FieldToBeValidated被无效化, 关闭。

一旦“需求”字段发生变化,FieldToBeValidated就不会被 验证,直到表单被提交。因此,该领域保持红色与香菜适用的警告框。

'需求'字段更新为非空或'----'后,如何将'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; 
}, 
+1

不知道你在这里试图完成什么。如果你想删除错误,你可以使用'window.ParsleyUI.removeError($(“input [name = fieldName]”)。parsley(),'required');'([see docs](http:/ /parsleyjs.org/doc/index.html#psly-ui-for-javascript))。如果您想从该字段中删除验证,请检查[此答案](http://stackoverflow.com/a/21885466/908174)。 –

+0

@milz您的评论是一个巨大的帮助。 'window.ParsleyUI.removeError($(“input [name = fieldName]”)。parsley(),'required');'确实删除了错误信息,但是留下了parsley错误。但是,由于你的链接,我可以找到'$('#FieldToBeValidated')。parsley()。reset();'通过重置字段上的欧芹状态来解决问题。如果你在一个例子中回答包括这个解决方案在内的问题,我会接受答案。谢谢! –

回答

6

有两种方法可用于远程验证特定字段。检查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>