1

我需要一些帮助。我试图将表单的提交延迟 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>
4

1 回答 1

0

使用单个提交处理程序。我在我的本地系统上试过这个并且它有效。

    <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>
于 2013-02-01T11:15:54.540 回答