2015-06-04 30 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>