文章目录
- 问题描述
- 问题细节
- 解决思路
- 综合分析
- 解决办法
问题描述
页面点击按钮跳转弹窗页面回显出数据
此弹窗页面中有年份,类型等,当选中年份/类型会重新触发回显方法(onSelect 中调用方法),回显对应年份/类型得数据
问题细节
最开始调试并不会死循环,后来调试发现浏览器日志疯狂打印,直到把电脑跑黑屏为止,赶紧关idea服务,试了好几次都是这样,截取到的浏览器日志打印的CONSOLE发现是这个回显页面,不停的调用回显方法
解决思路
除去进去弹窗页面初始调用回显方法外,就是onselect 中才会再次调用回显方法了
前期不会,后期才会,配合所加代码,
).form(‘load’, data);此代码2是年月/类型触发后新值覆盖旧弹窗值得
).form(‘clear’);此代码1是发现本来只有代码2得时候,回显不完全成功(如:旧回显值有值,重选后得新回显值无返回值,旧回显值不会被覆盖。即:新值有值覆盖,新值无值不覆盖也不清空,界面存在新旧值混合)
综合分析
回显方法中
加了).form(‘clear’);此代码1清空表单,马上进行代码2:).form(‘load’, data);赋值,
赋值也对年月/类型进行赋值,触发onselect 调用回显方法,回显方法又清空,赋值,触发onselect 导致一直在调用回显方法永不停歇。
解决办法
将年月/类型 等会触发回显方法得抽离出表单。让年月/类型只起到触发回显方法作用,并不需要给他赋值,只做传参作用(或说:即年月/类型不存在清空赋值操作)