需求:再已有驗證(也是基於validate插件,驗證功能寫在表單中,不是用js代碼,如:required寫在input中)基礎上如何自定義,並動態綁定到指定元素上,並通過$("#formid").valid();方法進行驗證?
網上找了一圈,基本上都是採用validate的$.validator.addMethod方法來自定義驗證規則,然後通過$("#id").rules("add", 方法來動態綁定。但是有問題,會提示:無法獲取未定義或 null 引用的屬性“settings”的錯誤。
解決方法:
關鍵點就是必須先執行$("#formid").validate()方法,再執行動態添加。參考文章:https://www.iteye.com/blog/wyf-2319482。
至於什麼原因不知道,validate官方文檔沒看明白,demo也沒有很多。
示例代碼:
$("#editForm").validate();
$.validator.addMethod("administrative_punishment", function(value) {
//do some valid;
return false;
}, function() {
return "這是驗證文字";
});
$("#cxgsyy").rules("add", {administrative_punishment: true});
$("#xyxfrq").rules("add", {administrative_punishment: true});
$("#editForm").valid();