Php 将表单上的提交延迟5秒并显示jquery对话框?

Php 将表单上的提交延迟5秒并显示jquery对话框?,php,javascript,html,login,Php,Javascript,Html,Login,我需要一些帮助。我试图将表单提交延迟5秒,以便在提交登录表单之前出现jquery对话框加载框 目前我使用的代码确实会延迟提交,但是它会阻止表单提交数据,并且不会让用户登录 我很确定这是因为我在javascript中使用了e.preventDefault,但是如果没有它,它就不能工作。有人能告诉我如何延迟表单提交并成功提交数据,这样它就可以让用户登录了 谢谢 <div id="login"> <?php if (!logged_in()) {

我需要一些帮助。我试图将表单提交延迟5秒,以便在提交登录表单之前出现jquery对话框加载框

目前我使用的代码确实会延迟提交,但是它会阻止表单提交数据,并且不会让用户登录

我很确定这是因为我在javascript中使用了e.preventDefault,但是如果没有它,它就不能工作。有人能告诉我如何延迟表单提交并成功提交数据,这样它就可以让用户登录了

谢谢

<div id="login">
      <?php
        if (!logged_in()) {
            ?>

      <form id="myform" form action="login.php" rel="shadowbox" method="post" class="loginform">

    Email
      <input type="text" name="email" maxlength="30" />

    Password
    <input type="password" name="password" maxlength="30" />

    <input type="image" src="../PTB1/assets/img/icons/loginarrow1.png" name="submit" class="loginbutton" value="Login" />

                </form>


               <?php
        }
        if (logged_in()) {
            ?>


                 Logged in as, <?php echo $_SESSION['email'] ?>. <a href="dashboard.php">Dashboard</a>, <a href="logout.php">Logout</a> |&nbsp;&nbsp;&nbsp;&nbsp;<a href="dashboard.php"><div class="login_settings" id="login_settings"></div></a>
    <?php
        }





        ?></div>

        <script>
        $('#myform').submit(function (e) {
        var form = this;
        e.preventDefault();
        setTimeout(function () {
            form.submit();
        }, 3000); // in milliseconds
    });
    </script>

        <script>
        $(document).ready(function() {
        $('#myform').submit(function() {Shadowbox.open({
            content:    '<iframe src="login.php" width="500" height="300" scrolling="no" style="overflow:hidden; border:none;"></iframe>',
            player:     "html",
            height:     300,
            width:      500
        });

             });



        });



    </script>

电子邮件
密码
登录为,,|
$('#myform')。提交(函数(e){
var form=此;
e、 预防默认值();
setTimeout(函数(){
表单提交();
},3000);//以毫秒为单位
});
$(文档).ready(函数(){
$('#myform').submit(函数(){Shadowbox.open({
内容:“”,
玩家:“html”,
身高:300,
宽度:500
});
});
});

使用单个提交处理程序。我在我的本地系统上尝试了这个方法,效果很好

    <script type="text/javascript">
        $(document).ready(function() {
            $('#myform').submit(function(e) {
                var form = this;
                e.preventDefault();

                Shadowbox.open({
                    content:    '<iframe src="login.php" width="500" height="300" scrolling="no" style="overflow:hidden; border:none;"></iframe>',
                    player:     "html",
                    height:     300,
                    width:      500
                });

                setTimeout(function () {
                    form.submit();
                }, 3000); // in milliseconds
            });
        });
    </script>

$(文档).ready(函数(){
$('#myform')。提交(函数(e){
var form=此;
e、 预防默认值();
暗箱,打开({
内容:“”,
玩家:“html”,
身高:300,
宽度:500
});
setTimeout(函数(){
表单提交();
},3000);//以毫秒为单位
});
});

由于延迟提交并打开dilaogue窗口,但用户未登录,您使用的是什么浏览器等,所以您做了什么来让它为您工作?我使用的是Chrome。为什么要在shadowbox的iframe中加载login.php?form.submit将表单#myform提交到#myform的action属性中指定的页面。你到底打算实现什么?我现在只是把它作为php文件的一个示例,我将使用内容:显示加载的gif。不管出于什么原因,虽然它没有让用户登录,但我不确定你是如何让它工作的。我没有你的login.php服务器端代码,也没有函数logged_in()中的代码。我刚刚测试了延迟和阴影盒。本质上,表单是否在3秒后提交,阴影框是否出现!是否愿意分享上面问题中的login.php和logged_in()?