Ajax成功功能无法更改按钮文本

时间:2019-03-20 08:49:17

标签: javascript html ajax

我有一个简单但奇怪的问题,我无法在ajax发布成功回调中更改按钮的值,我确定在显示警报时该回调已执行。另外,这些按钮是静态创建的,我没有使用Jquery动态创建它们。

下面是我的ajax:

[40, 20, 50, 20]

但是,如果我在ajax之外更改问题行,则效果很好:

$.ajax({
    type: "POST",
    beforeSend: function (xhr) {
        xhr.setRequestHeader("XSRF-TOKEN",
        $('input:hidden[name="__RequestVerificationToken"]').val());
    },
    url: "/?handler=Queue",
    data: $.param(params),
    dataType: "json",
    success: function (response) {
        $("#btn-queue-lib").val("Cancel Queue");
        alert(response.responseText);
    },
    error: function (xhr) {
        alert(xhr.responseText);
    }
});

5 个答案:

答案 0 :(得分:1)

我发现了问题,由于某种原因,我不知道服务器正在返回成功消息,但实际上却返回了badrequest。因此,我误认为应该调用成功函数。如果我将问题行放在错误回调中,则可以正常工作。谢谢你们的努力! 〜(^ _ ^)∠※

答案 1 :(得分:0)

document.getElementById('btn-queue-lib')。innerText ='取消队列'

答案 2 :(得分:0)

更改

$("#btn-queue-lib").val("Cancel Queue");

$("#btn-queue-lib").text("Cancel Queue");

将语句放在警报之前的ajax成功函数中。

答案 3 :(得分:0)

成功使用

 $("#btn-queue-lib").html("Cancel Queue");

答案 4 :(得分:0)

即使我遇到了同样的问题...我也按如下方式进行管理,希望对它也有帮助

function changeAfterAjax(){
$.ajax({
    type: "GET",
    url:"https://reqres.in/api/users?page=2",
    //data: $.param(params),
    dataType: "json",
    success: function (response) {
        $("#btn-queue-lib").text("Cancel Queue");// this is also works fine 
        //changeBtnTxt('btn-queue-lib','Cancel Queue');
        //alert(response);
    },
    error: function (xhr) {
        console.log(xhr);
    }
})
}

function changeBtnTxt(id,txt){
  $("#"+id).text(txt);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick="changeAfterAjax()" id="btn-queue-lib">Click to chanage after ajax</button>