Javascript 在提交表单和API调用后,引导微调器不会停止

Javascript 在提交表单和API调用后,引导微调器不会停止,javascript,jquery,bootstrap-4,spinner,Javascript,Jquery,Bootstrap 4,Spinner,我正在使用引导,并试图在提交表单时设置微调器。当表单提交时,我可以让微调器按钮旋转,但是在表单提交后,它只是继续旋转。我已经看了所有的地方,但似乎不知道如何在API调用完成后停止。在提交表单时,如何使其旋转,在API调用完成后停止,并在API调用完成后再次返回可用按钮 html代码 你可能会考虑重新组织一些事情来简化正在发生的事情。 创建单个函数以处理微调器状态 函数startSpinner(){ //启动微调器的代码 $(“#btnFetch”).prop(“禁用”,真); $(“#btnF

我正在使用引导,并试图在提交表单时设置微调器。当表单提交时,我可以让微调器按钮旋转,但是在表单提交后,它只是继续旋转。我已经看了所有的地方,但似乎不知道如何在API调用完成后停止。在提交表单时,如何使其旋转,在API调用完成后停止,并在API调用完成后再次返回可用按钮

html代码
你可能会考虑重新组织一些事情来简化正在发生的事情。

  • 创建单个函数以处理微调器状态
  • 函数startSpinner(){
    //启动微调器的代码
    $(“#btnFetch”).prop(“禁用”,真);
    $(“#btnFetch”).html(
    `加载`
    );
    }
    函数stopSpinner(){
    //您可以编写代码使微调器停止
    //(即,将按钮返回到其原始状态)
    $(“#btnFetch”).prop(“禁用”,false);
    $(“#btnFetch”).html('Submit');
    }
    
  • 在提交过程中的适当时间调用微调器函数
  • $(文档).ready(函数(){
    $('.form_class1')。关于('submit',函数(事件){
    //启动旋转器
    startSpinner();
    $.ajax({
    数据:{
    some_id:$('#some_id').val(),
    },
    键入:“POST”,
    url:“/ajax\u请求\u url1”
    })
    .完成(功能(数据){
    // ...
    })
    .always(函数(dataOrjqXHR、textStatus、jqxhrorErrorSwitch){
    //完成时执行此操作,即使出现错误
    //停止旋转
    停止旋转器();
    });
    //这些应该在顶部吗?
    event.preventDefault();
    事件。stopImmediatePropagation();
    });
    });
    
    这可以在处理表单提交的代码(ajax、axios等)中实现,但似乎没有提供该代码。感谢我添加了我拥有的ajax调用代码。如果您不介意只使用CSS3和jQuery,这里有一种方法可以确保旋转在3秒钟后停止。您可能会发现此讨论很有帮助。谢谢,这正是我想要做的。谢谢你的帮助。
    <form id="form_id" name="form_id" class="form_id" method="POST" >
        <div class="input-group-append">
            <button type="submit" id="btnFetch" class="btn btn-primary mb-2">Submit</button>
        </div>
    </form>
    
    $(document).ready(function() {
        $("#btnFetch").click(function() {
            $(this).prop("disabled", true);
            $(this).html(
                `<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>Loading...`
            );
        });
    });
    
    $(document).ready(function() {
        $('.form_class1').on('submit', function(event) {
            $.ajax({
                data : {
                    some_id: $('#some_id').val(),
                },
                type : 'POST',
                url : '/ajax_request_url1'
    
            })
            .done(function(data) {
    
                if (data.error) {
    
                }
                else {
                    // Do Processing here....
                }
    
            });
    
            event.preventDefault();
            event.stopImmediatePropagation();
    
        });
    
    });