【发布时间】:2020-05-26 10:23:59
【问题描述】:
我想在这里问我尝试进行 HTML 操作,当单击按钮时,它将向 ajax 发送数据,在 ajax 给出响应之前,按钮将被禁用,这里的问题是我想恢复按钮到了开头怎么办? 这是我的 HTML
<button
type="button"
href=""
id="bank"
query-string="{{$assessment['user_id'].'&type=bank&name=american'}}"
data-toggle="tooltip"
data-placement="bottom"
title=""
data-original-title="Detail Mutation Bank BCA"
class="btn btn-soft-dark mt-1 mr-1"
>
mutation
</button>
<script>
var bank = $("#bank").attr("query-string");
var btnText = $(this);
var btn = $(this);
$(btn)
.html(
`<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>`
)
.attr("disabled", true);
$.ajax({
type: "get",
url: "{{route('getDescription')}}" + "?id=" + bank,
dataType: "json",
success: function(data) {
console.log(data);
if (data.status == "error") {
createAlert(data.message, "danger");
} else {
window.open(data.url, "_blank");
}
}
//here i want to restore button
});
</script>
【问题讨论】:
-
在变量中保留按钮的副本,然后将相同的按钮内容分配给您的
btn变量..但这将是最肮脏的解决方案..我建议您保留 2 个按钮。 . 一个是你拨打ajax时需要的内容,一个是原始按钮,这样你就可以相应地隐藏和显示这些按钮了.. -
您应该在ajax请求的成功和错误回调中启用按钮。
标签: javascript jquery laravel jquery-ui dom