如何在Ajax调用前禁用链接并在jQuery中启用响应后的链接

时间:2019-03-01 18:43:37

标签: javascript jquery ajax

我想在ajax调用之前禁用该链接,并在ajax响应之后立即启用该链接。 这是我正在尝试的方法,但是不起作用:

jQuery(this).prop('disabled', false);

这是我在jQuery中的链接点击事件:

jQuery("#save").click(function (e) {

    e.preventDefault();
    var pcid = jQuery(this).data('pcid');
    var id = jQuery(this).data('id');
    jQuery(this).prop('disabled', true);

    var state = jQuery('.state').html();

    jQuery.post(ajaxurl, data, function (response) {
        console.log(response.status);
        jQuery(this).prop('disabled', false);

    });
});

一切正常,但是在单击链接和ajax响应后,并未禁用和启用链接。

这是标记的HTML:

<a id="save" href="#">SAVE</a>

1 个答案:

答案 0 :(得分:1)

在按钮单击时,您可以尝试将其禁用。

$("#save").click(function(e) {
  $(this).attr('disabled','disabled');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="submit" id="save">SAVE</button>

当获得正面或负面的结果时,应使用选择器而不是“ this”。

$("#save").removeAttr('disabled');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="submit" id="save">SAVE</button>