我試圖阻止用戶雙擊我正在更新的頁面的提交按鈕。問題在於需要進行服務器端驗證,以確定用戶是否必須先做任何更新,然後才能繼續。我目前在我的表單提交事件中有以下代碼。防止雙擊服務器端驗證
<asp:Button ID="SubmitPayment" runat="server" OnClientClick="this.disabled='true';" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" />
如果這成爲一個問題,那麼頁面沒有通過驗證。在這種情況下,我試圖啓用按鈕的所有內容都失敗了。在提交按鈕被禁用的情況下,他們很難重新提交更正的信息。我在驗證結束時嘗試了以下兩種方法以重新啓用它。
SubmitPayment.Enabled = true;
SubmitPayment.Attributes.Add("disabled", "false);
如何重新啓用此控件?這是在Visual Studio 2005.預先感謝。
CNC中 ,我用瞭如下的方法。我添加了一個禁用的附加誘餌按鈕,並將顯示CSS屬性設置爲無。然後,我使用javascript來隱藏提交按鈕並在OnClientClick事件中顯示誘餌按鈕。最後,服務器端方法的結束會更新按鈕上的css屬性,以隱藏並隨後顯示它們。
代碼段如下。再次感謝您的幫助
function PreventDoubleClick()
{
var sp = document.getElementById("SubmitPayment");
var db = document.getElementById("DecoyButton");
sp.style.display = "none";
db.style.display = "inline";
}
<asp:Button ID="SubmitPayment" runat="server" OnClientClick="javascript:PreventDoubleClick();" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" />
<asp:Button ID="DecoyButton" Enabled="false" runat="server" style="display:none;" Text="Please Wait..."/>
DecoyButton.Style.Add("display", "none");
SubmitPayment.Style.Add("display", "inline");
因此SubmitPayment.Attributes.Add(「disabled」,「true」);或SubmitPayment.Attributes.Remove(「disabled」,「false」);不做這項工作? 你有一個奇怪的問題。如何處理雙擊任何事情的白癡(當然,這不是他們的錯,而是桌面界面設計師的錯誤)。 – mcandre 2009-08-13 20:29:17