2009-09-25 27 views
1

在後端使用C#.net的asp.net中,點擊添加後,我使用Javascript添加股票並關閉窗口(我使用window.open打開)。雖然這在其他瀏覽器中運行良好,但[在MSIE中]如果我繼續點擊添加按鈕,它會添加多個庫存條目。這真是奇怪的行爲。任何想法如何我可以克服這一點。在IE中添加多個

AddStock(sessionID, stock,perms); 
string script = "window.parent.closeIFrame();"; 
ClientScript.RegisterStartupScript(this.GetType(), "close", script, true); 

closeIFrame() is defined on the parent page. 

回答

1

我得到了一個方法,我們可以禁用點擊按鈕this is the link to a beautiful article for this

+0

沒有啓用javascript的用戶仍然可以點擊幾次。 – 2009-09-26 13:46:04

+0

雅,但我們確保所有用戶都啓用了Javascript,因爲這是IT公司使用的產品。 – 2009-09-26 14:32:01

0

如果你的意思是點擊後海誓山盟正確添加好幾次,你將不得不做服務器端驗證,以確保「AddStock」將不會被調用多次。這是默認行爲,因爲您可以對後端執行多個POST操作,並且在執行另一個操作時請求不會被終止。

編輯你可能想這樣的事情,

if(((TimeSpan)(DateTime.Now - (Session["LastAddedStock"] ?? DateTime.Min)).TotalSeconds < 15) 
    //don't proceed, as the last addStock was less than 15 secs. ago 
else 
    //Do Add Stock 
    Session["LastAddedStock"] = DateTime.Now; 
0

我可以看到AddStock(...)過程是在子窗體。所以,爲什麼你需要調用父函數來關閉子窗體,當你可以在同一個子窗體中調用javascript時:close()?