Отключить кнопку обратной передачи при использовании средств проверки asp.net - PullRequest
2 голосов
/ 12 сентября 2011

Я использую следующий код для отключения моей кнопки при нажатии:

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

Проблема в том, что на странице есть несколько элементов управления проверкой asp.net.Поэтому, когда я нажимаю кнопку и кнопка отключается.Если какой-либо из элементов управления проверкой завершился неудачно, кнопка остается отключенной (и никогда не включается - потому что обратная передача никогда не выполняется).

Я сомневаюсь, что есть .net способ решить эту проблему, поэтому я надеюсь, что естькакой-то javascript, который можно вставить в свойство OnClientClick.Надеюсь, я смогу проверить, не вернули ли средства проверки достоверности какую-либо ошибку, прежде чем отключить кнопку ...

Ответы [ 3 ]

1 голос
/ 12 сентября 2011

Запустите проверку самостоятельно и используйте проверку, чтобы определить, должна ли кнопка оставаться отключенной.

Ваша кнопка (обратите внимание, что 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;
}
0 голосов
/ 15 января 2015

Событие onsubmit на form1 показывает, как это сделать простым способом. Попробуйте это:

<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>
0 голосов
/ 12 сентября 2011
...