2012-04-06 95 views
0

我有HTML代碼:如何禁用一個LinkBut​​ton防止多次提交

<asp:LinkButton ID="AddButton" runat="server" OnClick="AddPatientBtn_Click"> 
<span class="Normal">Add</span> 
</asp:LinkButton> 

我覺得如果我們點擊「添加」了好幾次,它會增加一些病人的病歷,所以我想改變像這樣的代碼:

<asp:LinkButton ID="AddButton" runat="server" OnClick="AddPatientBtn_Click" OnClientClick="return DisableButton(this)"> 
<span class="Normal">Add</span> 
</asp:LinkButton> 

JS:

function DisableButton(button) { 

document.all("AddButton").click; 
button.href = "javascript:void(0);"; 
button.setAttribute("disabled", "disabled"); 

} 

但是,這並不正常工作;我仍然可以添加許多患者記錄。

我該怎麼辦?

回答

1

謝謝大家!

我發現LinkBut​​ton可能沒有禁用屬性,它是在html頁面中的<a>

所以我用另一種解決方案

<asp:LinkButton ID="AddButton" runat="server" OnClick="AddPatientBtn_Click" OnClientClick="return DisableButton()"> 
<span class="Normal">Add</span> 
</asp:LinkButton> 

JS:

var pending = false; 
function DisableButton() {if (pending) { 
    alert("The new patient is being created. Please wait..."); 
    return false; 
    } 
    else { 
     if (Page_ClientValidate("")) 
     pending = true; 
     return true; 
    } 
} 
+1

什麼是Page_ClientValidate? – singsuyash 2014-10-28 06:55:52

+0

@singsuyash - 它運行.net驗證器(requiredfieldvalidator等)的客戶端驗證,如果一切都有效,則返回true。 – BornToCode 2016-04-10 16:55:27

0

你就可以說

AddButton.Enabled = false; 
代碼

後面,或者你可以寫

document.getElementById("AddButton").disabled = true; 
0

VAR鍵=的document.getElementById( 「Add按鈕」); button.setAttribute(「disabled」,「true」);

+0

我嘗試它,但它仍然無法正常工作。 – XiaoP 2012-04-06 05:04:13