问题陈述:
我有一个.NET用户控件,我在其中使用了iFrame。我在页面上有多个实例(可以是任意数字)的控件(其中包含iFrame)。每次控制状态改变时,我必须加载所有控件。该控件有一些必填字段。
我有一个导航到另一个屏幕的按钮,因为每次加载所有控件时,所有控件都需要相当长的时间才能加载。用户正在尝试完成所有必填字段并单击下一个按钮,即使用户已完成所有必填字段,并且控件(使用iframe)未完全加载,它也会在此实例中生成验证错误。
注意:以上所有内容均采用JavaScript,而非服务器端。
我尝试了什么:
我尝试显示一个模态div,直到它加载,但我显然无法捕获确切的加载时间,并且可能会点击下一个按钮。
我尝试在验证功能上暂停,但由于加载不是明确的,因此偶尔会有效。
我尝试使用计数器来查看加载了多少控件以检查总控件,然后只允许验证功能触发,再次以加载的确定方式启动,无效。
我知道这可以通过不同的方式完成,但由于所付出的巨大努力和时间,我们必须采用现有方式,并且必须解决问题。有人可以建议任何指针/解决此问题。
答案 0 :(得分:0)
我修好了这个。我认为修复是一种躲闪,但我不知道其他任何方式。
如上所述,我采用了方法3。超时1ms,计数器在该超时时间内递增,即
setTimeout(function() {
counter++;
}, 1);
我的验证码上还有一个计数器将其延迟1ms并检查条件是否计数器等于所有可用控件,如果不再次验证则直到条件为假。否则继续。
function validate() {
if (counter != total number of frames) {
setTimeout(function() {
validate();
}, 1);
return false;
}
...
}
感谢大家的投入,它帮了很多忙。希望这将成为类似问题的最后解决方案。