Javascript 隐藏按钮

Javascript 隐藏按钮,javascript,ajax,jquery,Javascript,Ajax,Jquery,让我的Ajax帖子禁用我必须提交数据的按钮时,我遇到了一个问题。下面是我的代码,我环顾四周,一切看起来都很好,但它没有禁用按钮,我尝试使用$(“#刷新按钮”).attr(“禁用”,true)和$(“#刷新按钮”)。删除设置(“禁用”)但它也不起作用 $(document).ready(function () { $.ajax({ type: "POST", async: false, beforeSend: function (reques

让我的Ajax帖子禁用我必须提交数据的按钮时,我遇到了一个问题。下面是我的代码,我环顾四周,一切看起来都很好,但它没有禁用按钮,我尝试使用
$(“#刷新按钮”).attr(“禁用”,true)
$(“#刷新按钮”)。删除设置(“禁用”)但它也不起作用

$(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调用完成,您必须启用该按钮,您可以在
始终
处理程序中这样做,因为您不应该使用async false,无论ajax调用的结果如何(失败或完成)。
$(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                
        }...
现在的问题是,您正在启用DOM就绪函数之外的按钮,因此选择器要么找不到元素,要么在ajax调用之前执行,因为document ready是异步的

$(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");
    });
});

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

$(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");
    });
});

你的JS控制台有错误吗?没有。我只收到我在代码中输入的日志消息,但没有一个错误。使用complete函数并使用$(element).attr(“disabled”,false)将刷新按钮放在其中<代码>$.ajax({complete:function(){再次启用}})
为了与浏览器完全兼容,应将disabled设置为“disabled”值以禁用元素,或者必须删除该属性以启用元素。下面的答案可以使用,但您的标题是hide so$(“#refreshButton”)。hide();你的JS控制台有错误吗?没有。我只收到我在代码中输入的日志消息,但没有一个错误。使用complete函数并使用$(element).attr(“disabled”,false)将刷新按钮放在其中<代码>$.ajax({complete:function(){再次启用}})
为了与浏览器完全兼容,应将disabled设置为“disabled”值以禁用元素,或者必须删除该属性以启用元素。下面的答案可以使用,但您的标题是hide so$(“#refreshButton”)。hide();