2013-04-22 70 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返回,然後繼續提交過程。