簡體   English   中英

使用asp.net驗證控件時禁用回發按鈕

[英]Disable button on postback when using asp.net validation controls

我使用以下代碼來禁用單擊按鈕時的按鈕:

OnClientClick="this.disabled = true" UseSubmitBehavior="false"

問題在於該頁面具有多個asp.net驗證控件。 因此,當我單擊按鈕並且按鈕被禁用時。 如果任何驗證控件失敗,則該按鈕將保持禁用狀態(並且永遠不會啟用-因為從不執行回發)。

我懷疑是否可以通過.net方式解決此問題,所以我希望可以在OnClientClick屬性中插入某種javascript。 希望我可以在禁用按鈕之前檢查驗證控件是否返回了任何錯誤...

自行觸發驗證,然后使用驗證來確定按鈕是否應保持禁用狀態。

您的按鈕(請注意,OnClientClick返回true / false):

<asp:Button ID="Button1" runat="server" Text="Go" OnClientClick="return validatePage(this);" ... />

您的JavaScript函數:

validatePage = function(button)
{
    var isValid = Page_ClientValidate();
    button.disabled = isValid;

    //return validation - if true then postback
    return isValid;
}

在form1上的onsubmit事件顯示了如何以一種簡單的方式進行操作。 嘗試這個:

<form id="form1" runat="server" onsubmit="setTimeout(function() {form1.btn1.value = 'Wait...'; form1.btn1.disabled = true; }, 0);">
<div>
    <asp:Label id="lbl1" runat="server" Text="Simple test:" AssociatedControlID="text1" />
    <asp:TextBox runat="server" ID="text1" />
    <asp:RequiredFieldValidator ErrorMessage="Fill the TextBox!" ControlToValidate="text1" runat="server" />
    <asp:Button Text="text" runat="server" ID="btn1" OnClick="btn1_Click" />
</div>
</form>

這個問題已經被問過了。 我發現的一些答案可能會對您有所幫助:

jQuery驗證插件在驗證后重新啟用提交

提交后重新啟用按鈕

使用jQuery啟用/禁用基於vars的按鈕

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM