需求:再已有验证(也是基于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();