ajax帖子隐藏了一个按钮

ajax post hide a button

本文关键字:一个 按钮 隐藏 ajax      更新时间:2023-09-26

我在获取Ajax帖子时遇到问题,无法禁用必须提交数据的按钮。下面是我的代码,我环顾四周,一切看起来都很好,但并没有禁用按钮,我尝试过使用$("#refreshButton").attr("disabled", true);$("#refreshButton").removeAttr("disabled");,但也不起作用。

$(document).ready(function () {
    $.ajax({
        type: "POST",
        async: false,
        beforeSend: function (request) {
            $("#refreshButton").attr("disabled", true); 
            request.setRequestHeader("AUTHORIZATION", authorizationToken);
        },
        url: url,
        dataType: "xml",
        success: function (xml) {
            //Do Something here
        });
        },
        error: function (x, status, error) {
            //errors                
        }
    });
})
$("#refreshButton").removeAttr("disabled");

这是我的按钮:

<input id="refreshButton" type="button" onclick="RefreshDataSubmit();" value="Refresh"/>

感谢任何人提供的帮助。

ajax调用完成后,您必须启用按钮,并且您将在always处理程序中这样做,因为您不应该使用async false,并且无论ajax调用的结果如何(失败或完成),都将始终启用按钮
现在的问题是,您在DOM就绪函数之外启用了按钮,所以选择器要么找不到元素,要么在ajax调用之前执行,因为文档就绪是异步的。

$(document).ready(function () {
    $.ajax({
        type: "POST",
        beforeSend: function (request) {
            $("#refreshButton").prop("disabled", true); 
            request.setRequestHeader("AUTHORIZATION", authorizationToken);
        },
        url: url,
        dataType: "xml"
    }).done(function (xml) {
         //Do Something here
    }).fail(function (x, status, error) {
         //errors                
    }).always(function() {
         $("#refreshButton").removeProp("disabled");
    });
});
$(document).ready(function () {
    $.ajax({
        type: "POST",
        beforeSend: function (request) {
            $("#refreshButton").prop("disabled", true);
            request.setRequestHeader("AUTHORIZATION", authorizationToken);
        },
        url: url,
        dataType: "xml",
        success: function (xml) {                
            //Do Something here
        },
        complete:function(){$("#refreshButton").prop("disabled", false);},
        error: function (x, status, error) {
          //errors                
        }...