在正常表单提交上加载 GIF


Loading GIF on normal form submit

我不知道这是否可能,因为根据我的概念,它不是。假设我有一个表单:

<form action="/loadLotsOfRecords" method="get">
<input type="text" name="email" />
<input type="submit />
</form>

现在,此表单至少需要 10-15 秒才能加载,因为显然有很多记录。我知道使用 AJAX 我可以加载 GIF 并加载记录。但是有没有一种方法可以在不使用 AJAX 的情况下,我可以在页面加载的那 15 秒内简单地显示 GIF。如果我使用windows.load功能,它只会在下一页上旋转。我需要的不是浏览器加载,而是我想要一个同时加载器在我的身体上。谢谢

您只需要在成功提交表单时向您展示加载器 gif。这样,加载 gif 将显示在页面上并一直显示,直到页面在处理后重定向到下一页。您不在乎隐藏加载,除非您预计表单提交中会出现任何错误。只有在表单成功提交后,才应显示此加载器。

$(document).ready(function(){
  $("#myform").on("submit", function(){
    $("#pageloader").fadeIn();
  });//submit
});//document ready
#pageloader
{
  background: rgba( 255, 255, 255, 0.8 );
  display: none;
  height: 100%;
  position: fixed;
  width: 100%;
  z-index: 9999;
}
#pageloader img
{
  left: 50%;
  margin-left: -32px;
  margin-top: -32px;
  position: absolute;
  top: 50%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="pageloader">
   <img src="http://cdnjs.cloudflare.com/ajax/libs/semantic-ui/0.16.1/images/loader-large.gif" alt="processing..." />
</div>
<form id="myform">
  <input type="text" name="fname" id="fname" value="" />
  <input type="submit" value="Submit" />
</form>

  • 您需要在 java 脚本中使用 setTimeout 函数,因为它使您的加载器,无需网页中的
    其他元素强调。 使用 AJAX 的目的是在后台加载所需的数据,这就是您的浏览器尝试显示页面中的所有其他元素。

          setTimeout(function(){
            Loader.show();  
                $.ajax({
                    type: "GET",
                     url: "XXXXXXX.htm",
                     data: { your_data},
                     success:function(result)
                     {
                         Loader.hide();
                     },
                     complete:function(){
                         Loader.hide();
                     },
                     error:function(){
                         Loader.hide();
                     }
                     });
            },1);
    

$(document).ready(function(){
  $("#myform").on("submit", function(){
    $("#preloder").fadeIn();
  });//submit
});//document ready
/* Preloder */
#preloder {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 999999;
    /* background: #000; */
    background: #ffffff;
}
.loader {
    width: 50px;
    height: 50px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -20px;
    margin-left: -20px;
    border-radius: 60px;
    animation: loader 0.8s linear infinite;
    -webkit-animation: loader 0.8s linear infinite;
}
@keyframes loader {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
        border: 4px solid #056d4d;      
        /* border: 4px solid #f44336; */
        border-left-color: transparent;
    }
    50% {
        -webkit-transform: rotate(180deg);
        transform: rotate(180deg);
        border: 4px solid #056d4d;
        /* border: 4px solid #673ab7; */
        border-left-color: transparent;
    }
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
        border: 4px solid #056d4d;
        border-left-color: transparent;
    }
}
@-webkit-keyframes loader {
    0% {
        -webkit-transform: rotate(0deg);
        border: 4px solid #056d4d;
        border-left-color: transparent;
    }
    50% {
        -webkit-transform: rotate(180deg);
        border: 4px solid #056d4d;
        border-left-color: transparent;
    }
    100% {
        -webkit-transform: rotate(360deg);
        border: 4px solid #056d4d;
        border-left-color: transparent;
    }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- Page Preloder -->
<div id="preloder">
    <div class="loader"></div>
</div>
<form id="myform">
  <input type="text" name="fname" id="fname" value="" />
  <input type="submit" value="Submit" />
</form>

您需要

使用 blockUi Js 显示一个阻止页面,当您单击提交按钮时,它们将是阻止整页,您只需全局编写提交按钮单击事件即可。

$(function () {
    $('form').submit(function () {
        if ($(this).valid()) {
            $(':submit').attr('disabled', 'disabled');
            StartBlockPage()
        }
    });
});
$(function () {
  StartBlockPage()
});
function StartBlockPage() {
    var block_body = $("#body");
    $(block_body).block({
        message: '<div class="fa fa-spinner spinner spinner--steps2 font-large-5"></div><br /><br /><h2>Please wait until the server responds.</h2>',
        overlayCSS: {
            backgroundColor: '#FFF',
            opacity: 0.8,
            cursor: 'wait',
            height: '200vh'
        },
        css: {
            border: 0,
            padding: 0,
            backgroundColor: 'transparent',
        }
    });
}
function CloseBlockPage() {
    var block_body = $("#body");
    $(block_body).unblock();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.blockUI/2.70/jquery.blockUI.js"></script>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<html>
<body id="body">
</body>
</html>

$(function () {
    $('form').submit(function () {
        if ($(this).valid()) {
            $(':submit').attr('disabled', 'disabled');
            StartBlockPage()
        }
    });
});
$(function () {
  StartBlockPage()
});
function StartBlockPage() {
    var block_body = $("#body");
    $(block_body).block({
        message: '<div class="fa fa-spinner spinner spinner--steps2 font-large-5"></div><br /><br /><h2>Please wait until the server responds.</h2>',
        overlayCSS: {
            backgroundColor: '#FFF',
            opacity: 0.8,
            cursor: 'wait',
            height: '200vh'
        },
        css: {
            border: 0,
            padding: 0,
            backgroundColor: 'transparent',
        }
    });
}
function CloseBlockPage() {
    var block_body = $("#body");
    $(block_body).unblock();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.blockUI/2.70/jquery.blockUI.js"></script>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<html>
<body id="body">
</body>
</html>