解决jQuery.Validate.js在先调用form()方法后没法获取通过js修改的验证规则

测试给报一个这样的bug:在一个表单中不填任何内容,然后点击保存,这个时候必填项是会有错误提示的,再选中一个checkbox,正常来讲有个对应的文本框就是必填,但是这个时候再点击保存,checkbox对应的文本框没有出现必填错误,也就是说没有获取到通过checkbox的onchange事件设置对应文本框的required:true这个验证规则,通过debug发现获取的还是checkbox选中之前的验证规则,经过不停的debug最后发现是项目中的jQuery.metadata.js的问题,metadata会判断是否有缓存数据,有的话就直接返回缓存数据了,不会再去获取html中的数据了

jQuery.metadata.js中的那段返回缓存数据的代码已经被注释掉了:

var data = $.data(elem, settings.single);
// returned cached data if it already exists
//if ( data ) return data; 注释本行代码保证每次获取的都是最新的数据,不取缓存数据。


你可能感兴趣的:(解决jQuery.Validate.js在先调用form()方法后没法获取通过js修改的验证规则)