使用asp.net验证控件时,在回发时禁用按钮

时间:2011-09-12 14:14:06

标签: javascript asp.net validation postback

单击时,我使用以下代码禁用我的按钮:

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

问题是该页面有几个asp.net验证控件。所以当我点击按钮并且按钮禁用时。如果任何验证控件失败,则按钮保持禁用状态(并且永远不会启用 - 因为永远不会执行回发)。

我怀疑有一种.net方式来解决这个问题,所以我希望有一些可以插入OnClientClick属性的javascript。希望我可以在禁用按钮之前检查验证控件是否返回了任何错误...

3 个答案:

答案 0 :(得分:1)

自行触发验证,并使用验证确定按钮是否应保持禁用状态。

您的按钮(请注意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;
}

答案 1 :(得分:0)

之前已经问过这个问题。以下是我发现的一些可能对您有帮助的答案:

JQuery validation plugin re-enable submit after validation

Re-Enable button after submit

Use jQuery to Enable/Disable a Button based on vars

答案 2 :(得分:0)

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>