我有一个像这样的jQuery代码:
$("#erase").click(function(){
$("#erase").attr("disabled", "disabled"); // Prevent double-clicking
$(this).html("Erasing...");
$.post("erase.php", {target: $("#target").val(), criteria: $("#criteria").val()}, function(data){
$(this).html(data); // Change the button's caption to whatever erase.php echoes.
setTimeout(function(){
window.location.href = "index.php";
}, 3000);
});
target
和criteria
都是HTML input
标记,按钮是使用button
标记声明的。
我希望当用户点击按钮时会发生这些情况:
erase.php
将通过AJAX调用。 erase.php
将从数据库中删除一行,并需要几秒钟才能完成。erase.php
的输出。它将是“成功”或“失败”但就我而言,第3步失败了。该按钮卡在“删除....”(但请求 完成了。)
旁注:我真的不能想到这个问题的更好的标题。如果你能为我拿出一个。请在评论中告诉我。我很感激。
答案 0 :(得分:5)
$(this)里面的$ .post不是你之前的那个。试试这种方式
$("#erase").click(function(){
$("#erase").attr("disabled", "disabled"); // Prevent double-clicking
$(this).html("Erasing...");
$this = $(this);
$.post("erase.php", {target: $("#target").val(),
criteria: $("#criteria").val()}, function(data){
$this.html(data);
setTimeout(function(){
window.location.href = "index.php";
}, 3000);
});