我有一个简单但奇怪的问题,我无法在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);
}
});
答案 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>