2013-04-22 167 views
0

我正在使用jquery ajax内的asp.net CustomValidator来查询服务器。因为这可能需要一些时间,我试图用BlockUI通过消息来阻止UI。jQuery blockUI插件不工作在ASP.NET提交验证Chrome/IE9

然而,它不工作在Chome & IE9。直到ajax调用完成后,显示才会被阻止,然后直接清除。我已将淡入设置设置为0.它在Firefox中正常工作,如果我在阻止显示的行上放置断点,然后逐步浏览它,则它在Chrome中也可以正常工作。

现在,当附加到按钮的单击事件时,相同的代码工作正常。所以我猜测这个问题与提交事件内部或提交事件调用的asp.net验证链内部有关。虽然它在逐步执行代码时起作用的事实可能意味着潜伏在某个地方的计时器。

但是知道这并不能让我解决这个问题 - 所以如果有人能够帮助它,我们将非常感激。

回答

0

好的,问题实际上是使用了一个同步的ajax调用,我从那以后发现停止了任何浏览器活动,包括显示更新!我通常不会使用同步ajax调用,但在这种情况下,因为它在验证程序中需要阻止表单提交。

此线程讨论可用来解决真正问题:)

How do I do a jQuery blocking AJAX call without async = false?

此外应注意的各种选项,试图通过AJAX在提交过程实际上是一个有缺陷的设计来调用服务端验证除非有人准备建立必要的状态机来取消提交过程,然后阻止用户界面,直到ajax返回,然后继续提交过程。