Javascript JS/JQuery表单提交延迟

Javascript JS/JQuery表单提交延迟,javascript,jquery,forms,delay,Javascript,Jquery,Forms,Delay,我试图延迟表单的提交,但只有在延迟后触发提交时,它才不会发送post值 这是我的html <form id="form_anim" name="form" autocomplete="off" action="index.php" method="POST"> <input name="username" id="username" type="text" placeholder="Nome utente" autofocus required> <

我试图延迟表单的提交,但只有在延迟后触发提交时,它才不会发送post值

这是我的html

<form id="form_anim" name="form" autocomplete="off" action="index.php" method="POST">
    <input name="username" id="username" type="text" placeholder="Nome utente" autofocus required>
    <input name="password" id="password" type="password" placeholder="Password" required>
    <a href="#">Hai dimenticato la password?</a>
    <input id="invio" name="invio" type="submit" value="Accedi">
</form>

请帮帮我。

注意,如果您打算提交两次,确定吗

$('#form_anim').on('submit', function(event, force) {
    if (!force) {
        var $this = $(this);
        setTimeout(function() {
            event.preventDefault();
            $this.trigger('submit', true);
        }, 2000);
    }
});

我建议您使用不带
type=“submit”
的按钮:

发送
$('#send')。在('click',函数(事件){
setTimeout(函数(){
$('form#u anim')。提交();
}, 2000);        
});
尝试以下代码 它工作顺利

<form onsubmit="return delay('1')" id="form_anim" name="form" autocomplete="off" action="#" method="get">
    <input name="username" id="username" type="text" placeholder="Nome utente" autofocus required>
    <input name="password" id="password" type="password" placeholder="Password" required>
    <a href="#">Hai dimenticato la password?</a>
    <input id="invio" name="invio" type="submit" value="Accedi"/>
</form>

Javascript

<script>
    function delay(a){
        if(a == 1){
            setTimeout(delay(2),2000);
            return false;
        }
        else{
            $("#form_anim").submit();
        }
    }
</script>

功能延迟(a){
如果(a==1){
设置超时(延迟(2),2000);
返回false;
}
否则{
$(“#表单动画”).submit();
}
}

这将有效地延迟提交您的表格

$('#form_anim').on('submit', function (e) {
    var form = this;
    setTimeout(function () {
        form.submit();
    }, 2000);
    return false;
});
(顺便说一句,除非您想支持IE8及以下版本,否则您不需要jQuery)


监控您的网络(通过浏览器检查器)以查看其运行情况

我可以问一下,您为什么要延迟它?为什么要提交两次
表单
?还有,什么是
强制
?您不可能使用它。看起来您已经提交了表单……在定义它之前,您使用的是$this。首先防止默认值,而不是使用花哨的东西。在不知道什么是强制参数的情况下给出答案…是的,对不起,我复制了错误的代码;我想复制你刚刚发布的代码,但它不起作用;他发送了提交但没有post值问题是您每次都取消提交否,我用php检查,提交被触发,但$\u post中没有值。如果我在超时之前触发提交,它会正常工作,但显然没有延迟。如果你有解决方案,请告诉我,我正在尝试修复这个问题大约2小时。刚刚尝试。没有工作,但现在我知道问题不是延迟本身,而是.trigger(“submit”).$(“#form_anim”).trigger(“submit”),true);即使没有延迟,也不要发布值。如果我使用输入type=“submit”以正常方式提交表单,则会发送post值。
<script>
    function delay(a){
        if(a == 1){
            setTimeout(delay(2),2000);
            return false;
        }
        else{
            $("#form_anim").submit();
        }
    }
</script>
$('#form_anim').on('submit', function (e) {
    var form = this;
    setTimeout(function () {
        form.submit();
    }, 2000);
    return false;
});