как вернуть кнопку после DOM с jquery - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу спросить здесь, я пытаюсь сделать 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>

1 Ответ

3 голосов
/ 11 февраля 2020

Вы должны сохранить предыдущее содержимое HTML до значения rootTextOfButton, например

var rootTextOfButton = $(this).html();

Затем вы можете восстановить как

btn.html(rootTextOfButton); //here i want to restore button

Кроме того, вы также должны удалить disabled атрибут типа btn.removeAttr("disabled");

Полный код

var rootTextOfButton = $(this).html();

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');
            }
         btn.html(rootTextOfButton); //here i want to restore button
         btn.removeAttr("disabled");
        }
    });
...