使用WebForms時,如何在僅點擊IT之後以及驗證通過後禁用按鈕?在驗證之後和回發之前禁用Webform按鈕
我知道有:Disable asp.net button after click to prevent double clicking
不過,也有我的網頁上其他回傳,最後按下按鈕這證實了之前預訂的,我需要這些就可以了。
這只是最終的按鈕按下,我需要確保通過驗證,但只允許一次按下,才能被禁用。
代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
FinalButton.Attributes.Add("onclientclick", "if(Page_ClientValidate('vg')){this.disabled = true; }");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
TextBox1.Text = "Hi";
}
protected void Button3_Click(object sender, EventArgs e)
{
TextBox1.Text = "";
}
ASPX頁面:
<p>
<asp:TextBox ID="TextBox1" runat="server" ValidationGroup="vg"></asp:TextBox>
</p>
<p>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Set TextBox1 to Hi" />
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="Set TextBox1 to Empty" />
</p>
<p>
<asp:Button ID="FinalButton" runat="server" Text="Final Submit" ValidationGroup="vg" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator" ValidationGroup="vg"></asp:RequiredFieldValidator>
</p>
所以,除非該文本框被填充, 「FinalButton」 不應該提交(這部分作品)。然而,如果填充了文本框,那麼它應該被禁用,以避免重複點擊,回發前 - 但它並沒有禁止,所以我在這裏假設我的代碼,是不正確的:
FinalButton.Attributes.Add("onclientclick", "if(Page_ClientValidate('vg')){this.disabled = true; }");
來源當它呈現的頁面,展示該按鈕:
<input type="submit" name="ctl00$MainContent$FinalButton" value="Final Submit" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContent$FinalButton", "", true, "vg", "", false, false))" id="MainContent_FinalButton" onclientclick="if(Page_ClientValidate('vg')){this.disabled = true; }" />
謝謝
馬克
嗨 - 我已經試過了鏈接到這個SO:http://aspsnippets.com/Articles/ Disable-Button-before-Page-PostBack-in-ASP.Net.aspx - 但在最後一頁之前我的頁面上會有回傳 - 所以此解決方案會禁用與最終提交操作無關的回傳按鈕。我也嘗試過:http://stackoverflow.com/questions/13959256/disable-submit-button-after-one-click-with-validation和SO/Google上的其他鏈接。 – Mark
請張貼您的嘗試的一些代碼和錯誤是什麼。 「我的網頁上的其他回覆」是什麼意思?這些與最終按鈕有什麼關係?所有按鈕是否一次都處於活動狀態,並且您只希望在其點擊事件中禁用一個按鈕? – MikeSmithDev
你需要你的其他按鈕來做回調使用ajax或javascript..you不能回覆你的整個頁面與一個按鈕,並期望一切都是相同的。 –