Отключить кнопку asp net с помощью javascript - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть частичное представление, где я хотел бы отключить кнопку при определенных условиях.

<td style="padding-left: 30px;">
  <asp:Button ID="AddProdCostLine" runat="server" CausesValidation="False" Text="Add Line" CssClass="buttonBlue"></asp:Button>
</td>

В моем javascript мне нужно было проверить, были ли заполнены некоторые текстовые поля. Если нет, то пользователь не должен иметь возможность нажать кнопку (отключив ее)

На самом деле мне нужно установить текстовое поле обязательно при тех же условиях. Это была моя идея. Я не могу найти способ отключить мою кнопку, вот код:

function LoadComponentProdCost() {
    $(function () {
        $('input[id*="ProductionCostLineField"]').blur(function () {
            var amount = this.value;
            var textInInvoice = 'Mandatory';
            $('input[id*="ProductionCostInvoiceToLineField"]').each(function () {
                if (amount == '' || amount == '0') {
                    textInInvoice = '';
                } else {
                    textInInvoice = 'Mandatory';
                    alert("You must inform the field 'Invoiced By'");
                    //doesn't work I need here to disable the button 
                    document.getElementById("<%=AddProdCostLine.ClientID%>").disabled = "disabled";
                    document.getElementById('<%= AddProdCostLine.ClientID %>').disabled = true;
                    document.getElementById("<%=AddProdCostLine.ClientID%>").setAttribute("disabled", "disabled");
                }
            });
            $('input[id*="ProductionCostInvoiceToLineField"]').val(textInInvoice);
        });
    });

Мой Javascript находится в файле частичного просмотра .ascx

Визуализированный HTML для компонента выглядит так:

<input name="ProdCostControl$ProdCostGrid$ctl02$ProductionCostInvoiceToLineField" type="text" maxlength="100" id="ProdCostControl_ProdCostGrid_ctl02_ProductionCostInvoiceToLineField" tabindex="25" style="width:269px;">

1 Ответ

0 голосов
/ 04 мая 2018

С помощью функции alert () мне удалось отладить / проверить, был ли мой компонент пустым, поэтому вот решение кода, который я публикую выше:

function LoadComponentProdCost() {
    $(function () {
        $('input[id*="ProductionCostLineField"]').blur(function () {
            var amount = this.value;
            $('input[id*="ProductionCostInvoiceToLineField"]').each(function () {
                var textInvoicedBy = this.value;
                if (amount == '' || amount == '0') {
                    document.getElementById("<%=AddProdCostLine.ClientID%>").className = 'buttonBlue';
                } else {
                    if (this.value != '' || amount == '' || amount == '0') {
                    document.getElementById("<%=AddProdCostLine.ClientID%>").className = 'buttonBlue';
                    document.getElementById('<%= AddProdCostLine.ClientID %>').disabled = false;
                    }
                    if ((amount != '' || amount != '0') && textInvoicedBy == '') {
                        alert("You must inform the field 'Invoiced By'");
                        document.getElementById("<%=AddProdCostLine.ClientID%>").className = 'buttonLightGray3';
                        document.getElementById('<%= AddProdCostLine.ClientID %>').disabled = true;
                    }
                }
            });
        });
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...