JQuery отключить динамически созданную кнопку HTML в Asp.net - PullRequest
0 голосов
/ 14 мая 2018

Кнопка в моем представлении должна быть создана в зависимости от состояния.

Index.cshtml:

<html>
<head>
    <script src="~/scripts/jquery-3.3.1.js"></script>
    <script src="~/scripts/jquery-3.3.1.min.js"></script>
    <script type="text/javascript">
        $("#send_request_button").on('click', function () {
            $.ajax({
                url: "SendRequest",
                method: "GET",
            }).done(function (request_result) {
                if (request_result != null && request_result == '1') {
                    alert("Attempting button disabling");
                    @*attempt 1*@
                    @*$(this).prop("disabled", true);*@
                    @*attempt 2*@
                    $(this).attr("disabled", "disabled");
                }else {
                    alert("Could not disable Button");
                }
            });
        });    
    </script>
</head>

<body>
<div>
        @{
        if (ViewBag.ButtonFlag != null && ViewBag.ButtonFlag)
        {
            Response.Write("<text id=\"send_request_text\"></text>");
            Response.Write("<input id=\"send_request_button\" type=\"button\" value=\"Send Insert Request\"/>");
        }
      }
    }
</body>
</html>

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

1 Ответ

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

Попробуйте вместо $ (this) использовать id элемента для выбора в done () Это потому, что область использования ключевого слова this не будет доступна, если используется в другой функции:

 $("#send_request_button").on('click', function () {
        $.ajax({
            url: "SendRequest",
            method: "GET",
        }).done(function (request_result) {
            if (request_result != null && request_result == '1') {
                alert("Attempting button disabling");
                @*attempt 1*@
                @*$(this).prop("disabled", true);*@
                @*attempt 2*@
                $("#send_request_button").attr("disabled", "disabled");
            }else {
                alert("Could not disable Button");
            }
        });
    });    
...