以下是报错
VM24563 formValidation.js:1409 Uncaught TypeError: Cannot read properties of undefined (reading 'find')
at FormValidation.Framework.Bootstrap.updateStatus (VM24563 formValidation.js:1409:45)
at FormValidation.Framework.Bootstrap.resetField (VM24563 formValidation.js:2076:18)
at FormValidation.Framework.Bootstrap.resetForm (VM24563 formValidation.js:2089:22)
at validData (SuRegistration?inspectRegId=a2576b34cc8443f7a9da30c60f980c1d:1463:56)
at _saveEvent (SuRegistration?inspectRegId=a2576b34cc8443f7a9da30c60f980c1d:1682:8)
at HTMLButtonElement.onclick (SuRegistration?inspectRegId=a2576b34cc8443f7a9da30c60f980c1d:1001:31)
原因分析:
前端元素是动态生成的,在数据校验触发时 如果页面元素不发生变化,可以正常校验。当页面元素发生变化时校验就报错,原因是框架在二次校验时调用的方法使用的数据是缓存的数据。
解决方法:
用这个方法删除页面上已经不存在的元素。 removeField();
$("#suinspectionRegistForm").data('formValidation').removeField('servicePer'+id);
配合destroy()方法用起来 丝滑~~. 先销毁 然后重新加载校验validationForm对象
if(this.validationForm){
$("#suinspectionRegistForm").data('formValidation').destroy();
}