php - jquery .submit() 在 setTimeout 中不会将数据传递给 php

标签 php javascript jquery

我正在尝试向登录表单添加效果,当效果完成后(例如 1 秒),它就会转到 php。

我尝试在 .submit 中使用 e.preventDefault() 创建一个 setTimeout() 函数,这样我可以将其延迟一秒,但问题是它没有获取数据,而是转到空白网页中的 php目的是检查输入的数据。

当 e.preventDefault() 被取消时,php 可以工作,但它没有给我时间先执行动画,然后转到 php 文件检查所有数据

这是我的代码

<script> $("#effectsExplode").submit(function (e) {
        var form = this;
        e.preventDefault();
        $("#effectsExplode").toggle("explode");
        setTimeout(function () {
            form.submit();
        },1000);
    });
</script>




<form id="effectsExplode" class="form-1" method="post" action="checklogin.php">
    <p class="field">
        <input type="text" name="login" placeholder="Username or email">
        <i class="icon-user icon-large"></i>
    </p>
    <p class="field">
        <input type="password" name="password" placeholder="Password">
        <i class="icon-lock icon-large"></i>
    </p>
    <p class="submit">
        <button id="buttonexplode" type="submit" name="loginsubmit">
            <i class="icon-arrow-right icon-large"></i>
        </button>
    </p>
</form>

最佳答案

您已经创建了一个无限循环。例如,如果我有一个按钮和这个 javascript:

$('button').click(function() {
    var b = this;
    $('#status').append('Clicked<br/>');
    setTimeout(function() {
        b.click();
    }, 1000);
});

http://jsfiddle.net/b9chris/yaNdc/

一旦我单击该按钮,我每秒都会收到另一条“已单击”消息附加到该状态标记......永远。这是因为 jquery 会为您手动触发的事件触发所有事件处理程序;在这种情况下,您附加到“提交”,然后触发“提交”并循环回您自己的代码,这会阻止表单实际提交。

很可能在您的本地测试计算机上,此表单提交几乎立即发生,但是一旦您将其放在网络服务器上,实时版本将需要更长的时间,并且您的动画将有时间播放。最简单的解决方案是删除 ev.preventDefault() 并让它在提交需要时间的时候提交并播放。

关于php - jquery .submit() 在 setTimeout 中不会将数据传递给 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15869985/

相关文章:

javascript - 如何在时间符号中自动插入前导零

javascript - (React) 密码输入字段一次显示一个字母

jquery - 鼠标按下不起作用

php - 如何递归地将关联数组项复制到另一个数组项?

php - 比较mysql中varchar中存储的日期

javascript - 返回页面加载时间作为警报不起作用

javascript - 将动态元素绑定(bind)到函数;只剩下一个绑定(bind)

javascript - 如何一次打开所有 Bootstrap Accordion 选项卡

php - 将大文本 block 中的文本拆分并插入到两个单独的表中

javascript - 使用 AJAX 加载 PHP 文件与 HTML 文件?