将 Jquery Dialog 与 $post 一起使用时显示 Loader div

发布于 2024-12-27 20:30:59 字数 1702 浏览 1 评论 0原文

这是一个简单的任务,显示了 loader.gif,但不知何故,此代码片段仅在 Firefox 中有效,而在其他浏览器中失败。

我想要实现的是,当用户单击“发送电子邮件”按钮时,他们应该看到一个 loader gif 图像。 加载器 gif 图像是 id 为 validate 的 div 的一部分。

我在这方面投入了大约 8 个小时,并尝试测试了所有替代方案,例如 $ajaxsetup、$ajaxsend、$ajaxstart 等,但没有一个对我有用。

我需要一个适用于流行浏览器的简单示例

这是我的代码

 $j("#dialog-form").dialog({
                autoOpen: false,
                height: 435,
                width: 400,
                modal: true,
                buttons: {
                    "Send Email": function() {

            $j("#validate").show();
            setTimeout(ProcessRequest(),5000);


                        }
                    },
                    Cancel: function() {
                        $j(this).dialog("close");
                    }
                },
                close: function() {
                    allFields.val("").removeClass("ui-state-error");
                }

function ProcessRequest()
            {

                            var jqxhr = $j.post(
                                   "posturl.aspx",
                                   { name: name.val(), email: email.val(), phone: phone.val(), date: date.val() },

                           function(data) {
                                result=data;
                           }).success(function() { OnSuccess(); })
                             .error(function() { OnError(); });

                            jqxhr.success(function() { OnSuccess(); });
                            jqxhr.error(function() { OnError(); });

            }

        <div id="validate" style="display:none">
               <img src='trns_loader.gif' /> Your Order is being processed
 </div>

Its a simple task, showing a loader.gif but somehow this code snippet works only in firefox and fails in rest of the browsers.

What I want to achieve is when user clicks on Send Email button, they should see a loader gif image.
The loader gif image is part of a div whose id is validate.

I have invested around 8 hours in this and tried tested all alternatives like $ajaxsetup,$ajaxsend,$ajaxstart etc, but none worked for me.

A simple example which works on popular browsers is what I need

Here's my code

 $j("#dialog-form").dialog({
                autoOpen: false,
                height: 435,
                width: 400,
                modal: true,
                buttons: {
                    "Send Email": function() {

            $j("#validate").show();
            setTimeout(ProcessRequest(),5000);


                        }
                    },
                    Cancel: function() {
                        $j(this).dialog("close");
                    }
                },
                close: function() {
                    allFields.val("").removeClass("ui-state-error");
                }

function ProcessRequest()
            {

                            var jqxhr = $j.post(
                                   "posturl.aspx",
                                   { name: name.val(), email: email.val(), phone: phone.val(), date: date.val() },

                           function(data) {
                                result=data;
                           }).success(function() { OnSuccess(); })
                             .error(function() { OnError(); });

                            jqxhr.success(function() { OnSuccess(); });
                            jqxhr.error(function() { OnError(); });

            }

        <div id="validate" style="display:none">
               <img src='trns_loader.gif' /> Your Order is being processed
 </div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等你爱我 2025-01-03 20:30:59

我使用 loader.gif 的方式技术含量极低,但效果却非常好。

我把loader.gif作为主div的背景,位置为center center。

然后加载的任何内容,我都会将背景设置为白色。

这样,加载程序就会一直显示,直到内容附加到对话框为止。

在所有浏览器中都能很好地工作。

The way that I use a loader.gif is extremely low tech and works fantastic.

I put the loader.gif as the background of the main div, with a position of center center.

Then any content that's loaded, I make the background white.

This way, the loader shows until the content is appended to the dialog.

Works great in all browsers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文