javascript - 如何禁用ajax请求的页面

标签 javascript jquery ajax

嗨,我的要求是显示加载微调器,当为此发送 ajax 请求时,页面会被禁用且不可点击,我已经包含了给定的代码

$('#expressShippingCalculation input').change ->
if $('#shipping_method4').is(':checked')
  additionalAmountExpress()
  data = $('#shippingDetails').serialize()
  expressValue = true
else 
  $('#additional-charge').hide()
  expressValue = false
$.ajax
  url: '/update_express_shipping?expressShipping=' +expressValue
  type: 'PATCH'
return

$(document).ajaxStart ->
  $('#spinner').show()
  return
$(document).ajaxComplete ->
  $('#spinner').hide()
  return
$(document).ajaxError ->
  $('#spinner').hide()
  return

使用上面的代码片段,ajax 加载器可以正常工作,但是当微调器正在加载时,我的页面不会被禁用。请指导我如何在加载 ajax 时禁用页面。

最佳答案

这是在 ajax 响应之前显示微调器的示例代码:

HTML 微调器代码:

<div id="loading-overlay">
    <div class="loading-icon"></div>
</div>  

CSS:

#loading-overlay {
    position: absolute;
    width: 100%;
    height:100%;
    left: 0;
    top: 0;
    display: none;
    align-items: center;
    background-color: #000;
    z-index: 999;
    opacity: 0.5;
}
.loading-icon{ position:absolute;border-top:2px solid #fff;border-right:2px solid #fff;border-bottom:2px solid #fff;border-left:2px solid #767676;border-radius:25px;width:25px;height:25px;margin:0 auto;position:absolute;left:50%;margin-left:-20px;top:50%;margin-top:-20px;z-index:4;-webkit-animation:spin 1s linear infinite;-moz-animation:spin 1s linear infinite;animation:spin 1s linear infinite;}
@-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
@keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } }  

Ajax :

$.ajax({
        url: "YOUR PATH"
        type: "PATCH",
        data: "YOUR DATA HERE",
        beforeSend: function(){
            $("#loading-overlay").show();
        },
        success: function (data, textStatus, jqXHR) {
            $("#loading-overlay").hide();
        },
        error: function (jqXHR, textStatus, errorThrown) {
            $("#loading-overlay").hide(); 
            alert("something went wrong");
        }
    });

关于javascript - 如何禁用ajax请求的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36496509/

相关文章:

javascript - 将页面内容加载到变量

jquery - AJAX 从另一个域 (Dropbox) 获取

javascript - 无法从代码后面的 Li 获取事件条件

javascript - ES6 类中明确定义但未定义的函数

javascript - 如何使用 AngularFire 将时间输入到 firebase 中?

javascript - 将 JSON 保存到文件经常中断

javascript - 如何预先计算在 waitForKeyElements() 回调中使用的内容?

jquery-ui - 使用 jquery 在文本区域中创建标签

javascript - Google map : geocode addresses asynchronously, 但按顺序获取他们的响应

asp.net - DotNetNuke 7 - 将 ajax 控件添加到模块时编辑页面菜单不起作用