如何在提交表单执行JQuery时显示加载gif的意思

con*_*t01 10 jquery loading form-submit

我正在尝试显示一个简单的微调器gif同时正在执行提交(这需要一点,因为我必须通过Web服务与提供者建立一些通信).

所以,我有这个:

$('#gds_form').submit(function() {
        var pass = true;
        //some validations

        if(pass == false){
            return false;
        }

        $("body").prepend('<div class="ui-widget-overlay" style="z-index: 1001;"></div>');
        $("body").prepend("<div id ='PleaseWait'><img src='/images/spinner.gif'/></div>");
        return true;
    });
Run Code Online (Sandbox Code Playgroud)

问题是,.gif没有显示任何动画,就像它被冻结了一样.

为什么?

还有另一种方法可以实现这一点(注意我没有使用AJAX,我不想这样做)?

谢谢.

Jam*_*son 14

使用jQuery submit函数,您可以指定加载图像,如下所示:

$('#form').submit(function() {
    $('#wait').show();
    $.post('/somepage.htm', function() {
        $('#wait').hide();
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)


Cha*_*lle 11

您是否尝试将图像加载到文档准备就绪,只隐藏它.然后在你的功能中显示它?这样,图像已经加载并旋转.

$(document).ready(function() {
    $("body").prepend('<div id="overlay" class="ui-widget-overlay" style="z-index: 1001; display: none;"></div>');
    $("body").prepend("<div id='PleaseWait' style='display: none;'><img src='/images/spinner.gif'/></div>");
});

$('#gds_form').submit(function() {
    var pass = true;
    //some validations

    if(pass == false){
        return false;
    }
    $("#overlay, #PleaseWait").show();

    return true;
});
Run Code Online (Sandbox Code Playgroud)